• 締切済み

チェックボックスのデータを受け取って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\... 何でこんなエラーがでるでしょう?解決方法教えてください。お願いします。

みんなの回答

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

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)
回答No.1

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の最後の値しか処理されないのではないですか? 無駄な突っ込みでしたらスルーしてください。

関連するQ&A