MySQLに以下のようなテーブルがあります。
テーブル名:sample_table
フィールドは以下
・menseki
・category
このテーブルから以下の事をしたいです。
categoryの値が「東京都」のレコードの、mensekiの値をPHPの変数配列に入れていく
データベースへの接続は出来るので、SQL文とPHP配列代入スクリプトのみを教えてください。
応用がきくように、全フィールドのデータを取り出すsqlにしておきますね。
$sql = "SELECT * FROM mytable WHERE category='東京都'"; $result = mysql_query($sql); while ($row = mysql_fetch_assoc($result)) { $data[] = $row['menseki']; }
以上で、categoryの値が「東京都」のレコードの、mensekiの値が配列$dataに保存されます。
応用がきくように、全フィールドのデータを取り出すsqlにしておきますね。
$sql = "SELECT * FROM mytable WHERE category='東京都'"; $result = mysql_query($sql); while ($row = mysql_fetch_assoc($result)) { $data[] = $row['menseki']; }
以上で、categoryの値が「東京都」のレコードの、mensekiの値が配列$dataに保存されます。
ありがとうございます!
具体的で助かります。
こっちの世界はちんぷんかんぷんでして・・。
PHPとMySQLで実現したい一連の流れがありまして、また新しい質問させていただいてます。
もしお暇でしたらお付き合い頂ければと思います^^
ありがとうございました。
回答1/の内容を読んだ時点で書き加えられそうなものはなかったので静観していたのですが、
php+MySQL に不慣れなようなので以下のページはブックマークしておくことをお勧めします。
■phpマニュアル
http://www.php.net/manual/ja/ref.mysql.php
↑phpに備わっているMySQLを扱うための関数一通り載ってます。目次の欄を参照してみてください。
http://www.php.net/manual/ja/function.mysql-fetch-assoc.php
↑上のページ内の目次欄からmysql_fetch_assocを選択すると出てくるページです。
1/ で回答いただいた内容とmysql_fetch_assocの例題を見比べると、より理解が深まるでしょう。
■MySQLマニュアル
http://dev.mysql.com/doc/refman/4.1/ja/index.html
↑ リファレンス
http://dev.mysql.com/doc/refman/4.1/ja/reference.html
↑ SQL言語リファレンス
以上、余計なお世話でした。。。
ありがとうございます。
早速ブックマークさせていただきました。
テーブル名、違ってましたね。ごめんなさい。ついでに、ちょっと改造してみました。参考にして下さい。
フィールドはcategory、shikuchouson、mensekiだとします。
例えば、データがつぎのような場合を想定しています。
東京、新宿、1000
神奈川、横浜、2000
東京、品川、3000
// ユーザの入力から、'東京'などを受け取る場合 // $category = $_POST['category']; // とりあえずは、 $category = '東京'; // mysql_real_escape_stringでエスケープ $category = mysql_real_escape_string( $category ); // sprintfを使うのがお勧め $sql = sprintf( "SELECT * FROM sample_table WHERE category='%s'", $category ); // SQLを実行 $result = mysql_query($sql); // 一行ずつ$rowに入るので、whileでループして$dataに配列として格納 while ($row = mysql_fetch_assoc($result)) { $data[] = $row; } // 表示の例 foreach( $data as $key => $value ){ print("{$value['category']}の{$value['shikuchouson']}の面積は、{$value['menseki']}平方メートルです。"); print('<br>'); }
次のような表示になります。
東京の新宿の面積は、1000平方メートルです。
東京の品川の面積は、3000平方メートルです。
http://au.php.net/manual/ja/function.mysql-real-escape-string.ph...
具体的に、かつ丁寧にありがとうございます。
ようやく完璧にできました。
続いて次のステップに進んでみようと思います。
そちらでも回答頂いているようなので、ぜひぜひ参考にさせて頂きます。
回答#1があるので 少し細かく
# 検索結果 $data = array(); $data_num=-1; # 検索条件 $areacode = '東京都'; # SQL生成 $query = sprintf("SELECT menseki from sample_table from category='%s'",mysql_real_escape_string($areacode)); # 検索実行 $result = mysql_query($query); if( !$result ) { # エラー処理 } else { # 結果の件数を保存 $data_num = mysql_num_rows($result); while ($row = mysql_fetch_assoc($result)) { $data[] = $row['menseki']; }; # 結果が多い場合又はリソースを節約する場合 mysql_free_result($result); };
ありがとうございます!
具体的で助かります。
こっちの世界はちんぷんかんぷんでして・・。
PHPとMySQLで実現したい一連の流れがありまして、また新しい質問させていただいてます。
もしお暇でしたらお付き合い頂ければと思います^^
ありがとうございました。