こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

WHILEで取り出しループ中にさらにSQL文を入れたいです。

こんばんは。
いつもお世話になっております。
またはまってしまったみたいで、どうにもわからなく
なってしまいました。
どうかご指導よろしくお願いいたします。

使用環境はPHP5+Apche+MySQL4.0です。

2つのテーブルから【一覧リスト】というページを作って
mysq_fetch_array関数で、行をループで呼び出しました。
ここまでは出来たのですが、取り出したキー情報を
もとに、別テーブルの情報(文字列)を取り出したい
のです。

以下、試してみたコードです。


//SQL発行
$rs = mysql_query("select * from uriage", $conn);

//1件ずつ取り出すループ
while( $rec = mysql_fetch_array( $rs, MYSQL_ASSOC)){
echo "<tr>";
echo "<td>".$rec['oder_no']."</td>";
$sql = "(select*from syouhin where syouhin_id = '".$rec["syouhin_id"]."')";
$res = mysql_query($sql);
$rows = mysql_fetch_array($res);
echo $rows["syouhin_name"];
echo "<td>".$rec['siiresaki']."</td>";
echo "<td>".$rec['tanka']."</td>";
echo "</tr>";
}

Parse error: syntax error, unexpected T_ECHO
というエラーが返ってきています。
エラーの行数はecho $rows["syouhin_name"];
の部分です。
何が悪いのかすら判らなくて…。
どうか、ご指導よろしくお願いいたします。

投稿日時 - 2005-04-14 21:03:53

QNo.1331298

すぐに回答ほしいです

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

PHPでMSSQLは使った事が無いので外しているかもしれませんが、
クエリ2つを滅茶苦茶な順番で実行していたりしませんか?

カーソルを2つ用意するか、フェッチした内容を
配列にでも保存しておいて、内側のクエリは
外側のクエリが終わってから実行すればいいのでは?

投稿日時 - 2005-04-15 01:09:36

お礼

RAPTsong様こんばんは。

ご指導ありがとうございます。
私がやろうとしていた事は、ご指摘の通り、
かなり無茶だったみたいです。

一つのテーブルをwhile( $rec = mysql_fetch_arrayで
ループ取り出しをしながら、さらにキーの番号で
もう一つのテーブルから文字列を取り出すのではなく

最初から、二つのテーブルを結合させてしまえば
良かったみたいです。

投稿日時 - 2005-04-15 03:42:21

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問