• ベストアンサー

SQLのテーブルの特定カラムでループ検索?

説明が苦手でご迷惑をおかけします。 [denwa_table] id name telno 1 田中 080888866XX 2 山田 090999988XX 3 佐藤 050333366XX このようなテーブルがあり、 別で取得した 「0125815846584123584090999988XX3254158912_3546842」 のような文字列にID何番の人の電話番号が含まれているか 検索するPHPを作成しています。 初心者なので、いろいろわからないのですが、 特に理解できていないのが複数行の配列の操作です。 $sql = "select telno from denwa_table"; 電話番号部分のカラムだけをとってきてとかやればいいのでしょうか? 検索する部分は strstr($data,$data2)を使ったらできそうですが、SQLからとってきた番号の配列をどうやってループさせたらいいのでしょうか? わからないことだらけなのですがよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

PHPは普段使わないのでこれで出来るかわかりませんが 勉強がてらyyr446さんのサイトを参考に作ってみました。 実行環境がなくて動かしていませんが参考になれば幸いです。 <?php $mozi = '0125815846584123584090999988XX3254158912_3546842'; //$moziに電話番号が含まれるレコードだけ取得するSQL $sel = "select id,name,telno from denwa_table where replace('".$mozi."',denwa_table.telno,'') <> '".$mozi."'"; // SQL文を実行して結果を$resultに格納 $result = $db->query($logchksel); // SQL実行結果を格納する変数宣言 $id[] = null; $name[] = null; $telno[] = null; // selectの実行結果を一件ずつ取り出す while ($item = mysql_fetch_array($result)) { //取得してきたデータを変数に格納 $id[] = "${item['id']}"; $name[] = "${item['name']}"; $telno[] = "${item['telno']}"; // 取得してきたデータを表示 print(${item['id']}); print(${item['name']}); print(${item['telno']}); } //取得してきた内容の一件目だけ表示 print($id[0]); print($name[0]); print($telno[0]); ?>

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.5

No2です。 ご参考サイトは 私のサイトではありません。 紹介しただけです。あしからず

すると、全ての回答が全文表示されます。
回答No.3

select * from denwa_table where replace('0125815846584123584090999988XX3254158912_3546842',denwa_table.TELNO,'') <> '0125815846584123584090999988XX3254158912_3546842'

すると、全ての回答が全文表示されます。
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.2

何事も、まずは基礎からですよ。基本的な事を理解してから、DBアクセスにいどみましょう。 「特に理解できていないのが複数行の配列の操作です。」 「複数行の配列」って言葉の意味がとれませんよ。想像はできるけど、 ・配列とは何かとかその使い方 ・FORとかIFの構文 そういったところが、わかっていれば、DBからデータ抽出するサンプルコードなんて、たくさんありますからわかるようになります。 ご参考 http://www.standpower.com/index.html

marixka
質問者

お礼

お返事が遅くなりもうしわけありません。 基礎の理解が足りないようですね。もうすこし基礎の部分に目を通してみます。

すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

SQLの種類によって処理はかわるでしょう? どちらかというとPHPは関係なさそうです。 たとえばMySQLなどは正規表現がつかえます。 http://dev.mysql.com/doc/refman/4.1/ja/regexp.html

marixka
質問者

お礼

mySQLなのですが、もう一度正規表現を含むところを勉強してみます。 お返事が遅くなり申し訳ありませんでした。

すると、全ての回答が全文表示されます。