- 締切済み
チェックボックスのデータを受け取ってMYSQL条件としてセットする
HTML <input type="checkbox" value="データ1" name="aa[]">データ1 <input type="checkbox" value="データ2" name="aa[]">データ2 PHP <?php =====DB接続省略======== foreach($aa as $val){ //SQL文 $sql = "SELECT NO,SERVISNAME from JOBDATA WHERE SERVISNAME='$val' } //SQLを発行して結果セットを取得します $rst = mysql_query($sql); //取得された結果セットのレコード数を取得・表示します // $body = mysql_num_rows($rst) . " 件のデータがあります。<BR><BR>"; ======DBから取得したデータ表示省略====== ======結果セットを破棄し、MySQLとの接続を解除省略====== ?>エラー:Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\program files\... 何でこんなエラーがでるでしょう?解決方法教えてください。お願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
foreach($aa as $val){ $sql = "SELECT NO,SERVISNAME from JOBDATA WHERE SERVISNAME='$val' } この時点で引用符を閉じてないし、foreachとmysql_query()がリンクしてないし 期待の値を得ることはむずかしいですね。 こんな感じで調整してみてはいかがですか? <?PHP $str=""; if(is_array($_REQUEST["aa"])){ foreach($_REQUEST["aa"] as $val){ $str.=($str==""?"":",")."'$val'"; } $str="AND `SERVISNAME` IN ($str)"; } $sql =<<<eof SELECT NO,SERVISNAME FROM JOBDATA WHERE 1 {$str} eof; $rst = mysql_query($sql); //print $sql; ?>
- wp_
- ベストアンサー率54% (132/242)
mysql_fetch_array()のエラーの前にmysql_query()のエラーは出ていませんか。 クエリが不正などの理由でmysqlリソースが正常に返っていないように見えます。 $sqlをvar_dumpしmysqlコマンドでクエリの正当性を検査する、 mysql_error()でどのようなエラーが出ているか見てみる、などしてみてはいかがでしょう。 あと、 foreach($aa as $val){ //SQL文 $sql = "SELECT NO,SERVISNAME from JOBDATA WHERE SERVISNAME='$val' } //SQLを発行して結果セットを取得します $rst = mysql_query($sql); この順序だと$aaの最後の値しか処理されないのではないですか? 無駄な突っ込みでしたらスルーしてください。