※ ChatGPTを利用し、要約された質問です(原文:検索においてフィールド名+likeを複数使いたい)
複数のフィールド名を含む検索クエリの作成方法とエラーの解決方法
このQ&Aのポイント
フォームに入力された検索キーワードとカテゴリを使用してDBからレコードを取得するためのPHPコードがエラーとなっています。
エラーメッセージは、mysql_num_rows()が無効なMySQLの結果リソースとして渡されたことを示しています。
解決策として、SQLクエリの構文を修正し、正しい結果リソースを取得することが必要です。また、mysql_query()関数が非推奨であるため、代わりにmysqli_query()関数を使用することをおすすめします。
環境:php+mysql
■やりたこと
イメージ
<form method="get"action="result.php">
<p>
検索ワード:<input type="text" name="key" />
好きな果物:
<select name="cate">
<option VALUE="0">
<option VALUE="りんご">りんご
<option VALUE="みかん">みかん
</select>
<input type="submit" value="送信" />
<input type="reset" value="取り消し" />
</p>
</form>
と検索フォームをした場合
入力された内容が
検索ワード=愛媛
好きな果物=みかん
だとすると みかんのカテゴリに属するレコードで 且つ
みかんのキーワードを含むname またはDescriptionフィールドに該当する
結果数を取得したいです。
補足:
$cate(formのプルダウンで VALUE="xx" のxxが入ってきて
これはDB上フィールドに入っている日本語です。)
$a(これは検索キーワードが入ってきます。)
■現在書いているphp
$sql="select * from item where category=$cate and name like '%".$a."%' or Description like '%".$a."%' ";
$datas = mysql_query($sql , $db );
$num = mysql_num_rows($datas); ←75行目
エラー結果
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/xxx/result.php on line 75
おそらく、73行目の命令文が間違っていると思うのですが、どう対応するのか
検索しても対象になりそうなものがみつからず、、質問させていただきました。
アドバイスのほどよろしくお願いします。
お礼
敏速なご対応ありがとうございます! ご提示頂いた内容で動作いたしました。