ホームページ > バックエンド開発 > PHPチュートリアル > 。まだ続けなければなりません。 PHP で SQL クエリ ステートメントの条件として配列を使用する方法に関して、コードに問題があります。

。まだ続けなければなりません。 PHP で SQL クエリ ステートメントの条件として配列を使用する方法に関して、コードに問題があります。

WBOY
リリース: 2016-06-13 13:41:14
オリジナル
850 人が閲覧しました

。 。 。まだ助けを求めなければなりません。 。 PHP で SQL クエリ ステートメントの条件として配列を使用する方法に関して、私のコードに問題があります
現在、2 つのテーブルがあります: mhf (models_has_features を意味する)、mhr (models_has_replacements を意味する) msf のフィールドは Model_Name と FD_Name です。 ( (機能名を意味します)、msr のフィールドは Model_Name と RD_Name (置換名を意味します) です。

これで、機能と置換に関するユーザーのオプションが PHP を通じて取得され、これらのオプションを使用してデータベースを検索してモデル名を返します。

前の投稿モデレーターの助けのおかげで、私の現在の関連コードは次のとおりです:

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
$usrinput1=array_merge($outputs,$functions,$qualifications); //这里是用户输入的features选项,其中各个变量均是数组,由多选列表而来
$usrinput2=array_merge($ge,$ametek,$weschler,$prime,$vmi,$foxboro,$bailey,$chessell,$hays); //这里是用户输入的replacement选项,其中各个变量也均是数组

 $query0="SELECT mhf.M_Name FROM mhf,mhr 
          WHERE mhf.M_Name=mhr.M_Name 
          AND mhf.FD_Name='$input_signal' 
          AND mhf.FD_Name='$power_input' 
          AND mhf.FD_Name='$display' 
          AND mhf.FD_Name='$case_mounting'";
 //其中,$power_input,$display,$case_mounting 均是字符串变量,是由用户选择的单选列表获取而来

 $query1="AND mhf.FD_Name='".implode("' AND FD_Name='",$usrinput1)."'";
 $query2="AND mhr.RD_Name='".implode("' AND RD_Name='",$usrinput2)."'";

 $query=$query0.$query1.$query2;

//这里是想把这三个query组合成一个完整的query,从而达到 select SELECT mhf.M_Name FROM mhf,mhr  WHERE mhf.M_Name=mhr.M_Name  AND mhf.FD_Name='$input_signal'... AND mhf.FD_Name="userinput1里各个值" AND mhr.RD_Name="userinput2里各个值" 的效果。

 $result = mysql_query($query) or die("Query failed"); 
 

ログイン後にコピー


次に、出力コード、
PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
 print "<table>\n";   
 while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {  
  print "\t<tr>\n";        foreach ($line as $col_value) {            print "\t\t<td>$col_value</td>\n";        }        print "\t</tr>\n";    }    print "</table>\n"; 

ログイン後にコピー


しかし、テストオプションには結果が表示されるはずですが、表示できないと思います。コードのどこが間違っていたか見てみましょう。ありがとう!


-----解決策---------
mhf テーブルでは、M_Name は明らかにカテゴリ
です。この場合、受信データ
は M_Name
に対応し、who は FD_Name

に対応します。条件式は
M_Name=' である必要があります。 value ' AND FC_Name='value'

複数選択可能な場合は、
M_Name in('value1','value2','value3'...) AND FC_Name in('value 1 ','値 2','値 3'...)
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート