我正在開發一個網站,人們可以購買和銷售新車或二手車。我想設置一個簡單的過濾器,使用php和sql語句,當然也可以使用html選擇框(下拉選項)。我已經得到了所有其他的選擇,以幫助和信任我已經非常感謝。然而,我一直在試圖讓「價格過濾器」工作,並沒有得到任何地方。下面是我在html中的選擇框。使用php過濾SQL查詢和html選擇框
<select name="price" size="0">
<option value="100000">Under $100,000</option>
<option value="<?php echo " BETWEEN '100000' AND '250000' "?>">Between $100,000 and $250,000</option>
<option value=">250000<500000">Between $250,000 and $500,000</option>
<option value=">500000<750000">Between $500, 000 and $750,000</option>
<option value=">7500000">Over $750,000</option>
</select>
這是價格變量我的$ _ POST聲明:
$price = mysql_real_escape_string($_POST['price']);
這是我的SQL語句:
$sql = sprintf("SELECT * FROM `chjadb_vehicles` WHERE `v_make` LIKE '$make'AND `v_year` = '$year'AND `v_trans` LIKE '$trans'AND `condition` LIKE '$cond' AND `b_style` LIKE '$b_style' AND `v_price` '$price'");
在這之後,我有一個基本的循環,應打印結果。現在根據我的理解(正確與否),當用戶從下拉菜單中選擇一個特定的選項時,「選項值」的值被傳遞給$ _POST語句。在此之後,它應該用實際文本BETWEEN'100000'和'250000'替換$ price,完成查詢語句。所以從SQL語句印刷最終的說法應該是:
"SELECT * FROM `chjadb_vehicles` WHERE `v_make` LIKE '$make'AND `v_year` = '$year'AND `v_trans` LIKE '$trans'AND `condition` LIKE '$cond' AND `b_style` LIKE '$b_style' AND `v_price` BETWEEN '100000' AND '250000'"`
但是我得到這個錯誤:
之間的\「100000 \」和\「250000 \」您的SQL語法錯誤;檢查對應於你的MySQL服務器版本的手冊,在第8行''BETWEEN \'100000'和'250000'''附近使用正確的語法。
有關我哪裏出錯的任何想法?由於
問候, D.拉多克
爲什麼不簡單使用'WHERE v_price> = 100000 AND v_price <= 250000'? – lafor 2012-07-11 20:47:29
什麼是「選擇boes」? – 2012-07-11 20:47:44
這應該是「選擇框」...對於錯誤修正造成的抱歉...當我使用你選擇的語句我得到以下的PHP錯誤:你的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在第8行'> = 100000 AND'v_price' <= 250000''處使用正確的語法 – 2012-07-11 21:36:42