我需要從表單中輸入的單詞查詢MYSQL數據庫。我需要搜索數據庫的兩列,並輸入搜索表單中的所有單詞。第一列是記錄號,第二列是描述。當在這兩列上搜索時,我需要搜索記錄號模糊(%t%),並用精確匹配搜索描述。我需要查詢返回所有這些詞都出現在任一列中的所有記錄。PHP MYSQL搜索多個字多列
因此,如果我搜索C-101,查詢將在兩列之一中返回任何帶有C-101的記錄。如果我搜索C-101和螺絲,它將返回所有記錄,其中包含兩欄中的記錄。如果我搜索C-101
$text = '';
$the_array = explode(' ', $formdata);
$i = 0;
foreach($the_array AS $t){
if($i == 0){
$text .= " '%$t%' ";
$text2 .= " '$t%' ";
$i = 1;
}else{
$text .= " OR recordnumber LIKE '%$t%' ";
$text2 .= " AND description LIKE '$t%' ";
}
}
$sql = "SELECT * FROM drawrecord WHERE (recordnumber LIKE $text) OR (description LIKE $text2)";
有了這個代碼,並用螺絲將與C-101或螺絲返回所有記錄在裏面:
我的代碼,現在是不正常工作。這就是所有第一欄中都帶有C-101的記錄,第二欄中帶有螺絲的所有記錄以及第一欄中帶有C-101的所有記錄以及第二欄中的螺絲。
我需要它返回所有的行與C-101和螺絲一起出現在同一行。
這需要工作,如果有人輸入兩個三或四個單詞。通常他們只進入兩個。
感謝您的任何幫助。
你嘗試自己看着辦吧?你嘗試打印'$ sql'的值是爲了嘗試解決這個問題嗎?你知道查詢的樣子嗎? (如果你沒有編寫循環和php代碼 - 你知道該寫什麼嗎?) – Dekel
text2也未定義, –