• 締切済み

配列に値が入らない

PHP初心者です。 <?php $sql = sprintf('SELECT * FROM image WHERE img_url="%s"', mysql_real_escape_string('img_url') ); $record = mysql_query($sql)or die(mysql_error()); while($data = mysql_fetch_assoc($record)) { $image = array($data['img_url']); } ?> これで $image にはデータベースの img_url のフィールドの値がすべて代入されるはずだったのですが なぜか配列には何も値が入りません。 何が悪いのか、配列についていろいろ調べてはみたのですが、どうしてもわかりませんでした。 どうやったら値が入るようになるか、教えていただけないでしょうか? よろしくお願いします。

みんなの回答

回答No.5

こんばんは。 DBの「img_url」は文字列なんですよね? >$sql = sprintf('SELECT * FROM image WHERE img_url="%s"', $sql = sprintf("SELECT * FROM image WHERE img_url='%s'", コーテーションが反対・・・。

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.4

あ、今 yambejp さんの回答見て 思いました。 image テーブルの中の 全レコードから img_url フィールドの中身を 配列に入れたい。って事であれば、yambejp さんの回答の通りです。 んー、俺 また無駄な回答をしてしまった。 しかも、三回も。消したい。マジで。

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.3

ちょっと席 外した為、途中で送信してすみません。 んで、↓これも 本来は 別のフィールドを指定すべきもんじゃないんでしょうか? $image = array($data['img_url']); そちらが提示したソースを見る限り、img_urlフィールドに「img_url」ていう文字列が入っているレコードを 抽出した挙句に、なぜか where で抽出条件として指定したimg_urlフィールドから読み込むという意味不明なことになっています。

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.2

ざっと 読んでみて思ったこと。 ↓これの $sql = sprintf('SELECT * FROM image WHERE img_url="%s"',mysql_real_escape_string('img_url')); ↓この部分。 WHERE img_url="%s"',mysql_real_escape_string('img_url') これを 簡単に書くと ↓こう。 WHERE img_url='img_url' こういう風に抽出条件を指定している以上、 ↓ これの while($data = mysql_fetch_assoc($record)) { $image = array($data['img_url']); } ↓これの $image = array($data['img_url']); ↓これの中身は $data['img_url'] 「img_url」しか有り得ない。 んで、多分 データベース上には 存在していなくて、mysql_query($sql) は 何も返していない。 なので、↓これ mysql_real_escape_string('img_url') 実は ↓こう なんじゃない?とか 思ってます。 mysql_real_escape_string($img_url)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

SQL文を見る限りナニをしたいかちょっとわからないのですが まずは print "rows:".mysql_num_rows($resource)."<br>\n"; のようにしてデータがとれているか確認してみてください <?php $sql = 'SELECT img_url FROM image'; $resource = mysql_query($sql)or die(mysql_error()); print "rows:".mysql_num_rows($resource)."<br>\n"; while($data = mysql_fetch_array($resource,MYSQL_ASSOC)) { $image[] = $data['img_url']; } ?> みたいなデータの取り方になると思うんですが、データの絞込みを どうしたいのか元のSQLをみてもわかりません