我在通過mysql生成的數組搜索時遇到了一些麻煩。我有以下代碼:循環瀏覽mysql的結果
if($result=$link->query("select s_abbreviation from northwoods.state")) {
if($result->num_rows) {
while($row=$result->fetch_assoc()) {
if(!preg_match("/".$STATE."/", $row['s_abbreviation'])) {
$error=true;
echo "Please enter a valid two letter state abbreviation for the state that your address is located in!";
}
}
}
}
結果數組有59行,我試圖將$ STATE模式的行中的至少一個匹配,否則迴應一個錯誤。問題是它匹配59行中的1行,但仍然回聲58錯誤,因爲它無法匹配其他58行。有沒有一種方法或修飾符,我可以使用,以便它搜索所有的行,如果它發現一個匹配,然後沒有錯誤發送?
爲什麼不把它放在'where子句中的查詢中?即'where s_abbreviation ='$ STATE'' –
like where $ STATE in(s_abbreviation)?然後我可以檢查返回的行數,如果0則回顯錯誤,如果1則接受條目。我會盡力的,謝謝! –
當然,你可以使用'IN()'或'FIND_IN_SET()',這取決於你的數據庫是如何設置的。我編輯我的評論以上btw,舉一個例子,但可能不是你想要的。 –