0
我遇到以下代碼的問題。我使用$ _GET獲取用戶主題,然後將其發送到服務器,以查看該行是否包含主題,如果是,則返回匹配每行的主題匹配行。這目前工作正常,但如果用戶輸入讓我們說「英語,數學」,並在數據庫中它被列爲「數學,英語」它將失敗,不會迴應該行,雖然它是正確的,只是在不同的順序。有什麼我做錯了嗎?Preg_match只能按順序工作
感謝,
CurtisB
$subjects = $_GET["subjects"];
while ($row = mysql_fetch_array($result, MYSQL_ASSOC) and ($counter < $max))
{
if(preg_match('/'.$subjects.'/',$row['subjects'])){
echo "subject matches row";
}
}
更新:下面試過代碼,這是呼應每一行,即使不正確的問題。
function is_matched($subjectsFromUs, $subjectsFromDb){
$subjectsFromUs = explode($subjectsFromUs, ',');
$subjectsFromDb = explode($subjectsFromDb, ',');
foreach($subjects as $s){
if(!in_array($s, subjectsFromDb))
return false;
}
return true;
}
while ($row = mysql_fetch_array($result, MYSQL_ASSOC) and ($counter < $max))
{
if(is_matched($subjects,$row['subjects']) == true){
echo "subjects matched";
}
}
我試過這使用下面的代碼,我無法讓它工作。即使當行不是正確的主題,它現在也會迴應。我會把上面的代碼放到你看到的。 –
我編輯了代碼。只是忘了一個$,並在爆炸 – nikit
切換參數似乎現在工作,非常感謝! –