。。。還得接著求助。。關於PHP中如何把數組作為sql查詢語句的條件,My Code有問題
目前有兩張表:mhf (意為models_has_features), mhr(意為models_has_replacements). 其中msf的欄位為Model_Name和FD_Name(意為Feature Name),msr的欄位為Model_Name和RD_Name(意為Replacement Name).
現在通過php擷取了使用者對於features 和 replacement的選項,想通過這些選項進行資料庫搜尋,從而返回model名稱。
感謝上個文章版友的協助,我目前的相關代碼如下:
PHP code
$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
print "
\n"; while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { print "\t
\n"; foreach ($line as $col_value) { print "\t\t
| $col_value | \n"; } print "\t
\n"; } print "
\n";
可是運行了之後沒有任何顯示啊,我保證自己的測試選項是應該有結果的,可是顯示不出來,希望各位高人看看My Code哪裡出錯了,多謝!
------解決方案--------------------
在你的 mhf 表中,M_Name 顯然是個分類
那麼,傳入的資料
誰對應 M_Name
誰對應 FD_Name
條件運算式應為
M_Name='值' AND FC_Name='值'
如果可以多選,則為
M_Name in('值1','值2','值3'...) AND FC_Name in('值1','值2','值3'...)