嗨,大家好我想在我的PHP中執行多個條件搜索,所以我想使用foreach根據用戶選擇的數量自動添加AND語句。下面是我的代碼:[PHP]如何使用foreach將AND或OR語句添加到sql查詢中?
$sub = trim(ucfirst($_POST['sub']));
$any = trim(ucfirst($_POST['key']));
$count = 0;
$query = "SELECT P.PTY_ID, P.PTY_UNITNUM, P.PTY_STREET, P.PTY_POSTCODE, P.PTY_SUBURB,P.PTY_CITY, T.P_TYPE_NAME,
L.SALE_PRICE, L.AVAILABILITY, R.PTY_ID,F.FEAT_ID, R.FEAT_ID,F.FEAT_NAME
FROM PROPERTY_TYPE T, PROPERTY P, LISTINGS L, PROPERTY_FEATURE R, FEATURE F
WHERE P.P_TYPE_ID = T.P_TYPE_ID(+)
AND P.PTY_ID = L.PTY_ID(+)
AND R.FEAT_ID= F.FEAT_ID
AND R.PTY_ID= P.PTY_ID
AND REGEXP_LIKE (P.PTY_SUBURB,'$sub')
AND REGEXP_LIKE (P.PTY_STREET||P.PTY_POSTCODE,'$any')
OR(
".foreach ($_POST["check"] as $feat_id) {
if ($count != 0)
echo "AND";
echo "FEAT_ID = ' . $feat_id . '";
$count++;
}.")";
$stmt = oci_parse($conn, $query);
oci_execute($stmt);
所以在我的情況,我想郊區,一些關鍵字,例如郵政編碼和街道名稱,以及強大的搜尋性能。爲了響應用戶對多個功能的選擇,我嘗試使用foreach循環來打印「AND FEAT_ID =(發佈的ID)」,但在「OR」部分後面出現語法錯誤直到查詢結束,說預計會有一些表達。 我現在在PHP學習方面很新穎。有人能爲我指出正確的格式嗎?乾杯(:
您應該學會使用正確的顯式'JOIN'語法,並且*從不*使用不贊成使用外部連接的'(+)'語法。 –
好的,歡呼聲@ GordonLinoff – dhyy