• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLのデータから連想配列を作成したい)

SQLのデータから連想配列を作成できない問題を解決したい

このQ&Aのポイント
  • 配列$food内の要素の数が増えてきたため、SQLを使用して$foodを作成したい。データベースからnameカラムのデータを取得し、連想配列$foodに格納する方法を教えてください。
  • 現在、配列$food内の要素の数が増えてきており、効率的な処理をするためにデータベースから$foodを作成したいと思っています。具体的には、データベースのnameカラムのデータを取得して、配列$foodに格納する方法をお知り合いください。
  • PHPで配列$foodを効率的に作成するために、データベースからnameカラムのデータを取得する方法がわかりません。mysql_fetch_arrayなどを使用してもうまくいかないので、正しいコードと方法を教えてください。

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

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

mysql_select_dbの行末に「;」を入れてください。 while行の前に$foods = array();を追加してください。 while(...) { }をwhile(...) {$foods[] = $food['name'];}としましょう。 上記で次のような感じになります。ただし、パラメータ関係は定数にしてあります。 <?php require_once('mysql_config.php'); $link = mysql_connect( HOSTNAME, UNAME, UPASS); mysql_select_db( DBNAME, $link); $name = 'tbl_foods'; $res = mysql_query( "SELECT * from {$name}", $link); $foods = array(); while( $food = mysql_fetch_assoc( $res ) ){ $foods[] = $food['name']; } print_r($foods); ?> 結果は次のようになります。 Array ( [0] => orange [1] => apple [2] => sugar [3] => spice [4] => cake )

spinia0120
質問者

お礼

なるほどです。 一度foodsを作って、そちらに格納すればよかったのですね。 ありがとうございます。

その他の回答 (1)

  • freetaka
  • ベストアンサー率53% (106/197)
回答No.1

それぞれの変数には 必要な文字列が入っているということでしょうか? もしそうでなければまったく動きませんし エラーは何もでていないのでしょうか? 入っているのならば mysql_select_db( $dbname, $link) の最後に「;」がないくらいで大丈夫なように思えますが 本当に連想配列が作られていないのか 表示してみるといいと思います <?php $hostname = 'ホスト名'; $uname = 'ユーザ名'; $upass = 'パスワード'; $dbname = 'dbname'; $name = 'Table'; $link = mysql_connect( $hostname, $uname, $upass); mysql_select_db( $dbname, $link); $res = mysql_query( "SELECT * from {$name}", $link); while( $food = mysql_fetch_assoc( $res ) ){ #表示確認用 echo $food['name']."<br>"; } ?>

spinia0120
質問者

お礼

ありがとうございます。 while文の文がないのが原因なのかなどしばらく悩んでいたので、解決して助かりました。

関連するQ&A