0

所以我有一个搜索框,可以搜索输入的任何内容(手机品牌、型号、操作系统和降价),并有一个循环根据是否满足搜索条件,在自己的框中显示每个结果。但是,当我添加多个查询时,其中两个有效,其余无效。代码如下:

mysql_select_db("bg29li", $con);
$phonesearch = $_POST['phonesearch'];

$sql = "SELECT * FROM `phones` JOIN manufacturer USING (ManufacturerID) JOIN operatingsystem USING (OSID) WHERE Price <='$phonesearch' ORDER BY `Price` DESC";
$sql = "SELECT * FROM `phones` JOIN manufacturer USING (ManufacturerID) JOIN operatingsystem USING (OSID) WHERE Model LIKE '%$phonesearch%'";
$sql = "SELECT * FROM `phones` JOIN manufacturer USING (ManufacturerID) JOIN operatingsystem USING (OSID) WHERE OSName LIKE '%$phonesearch%'";
$sql = "SELECT * FROM `phones` JOIN manufacturer USING (ManufacturerID) JOIN operatingsystem USING (OSID) WHERE Name LIKE '%$phonesearch%'";

$result = mysql_query($sql);

echo "<h2>Search Results:</h2>";
while($row = mysql_fetch_array($result))
{ ?>

在此示例中,似乎只有底部查询有效(获取与输入的品牌名称相同的手机)。我想知道是否有人可以帮我解决这个问题?

谢谢。

4

1 回答 1

0

您正在覆盖变量$sql。将其减少为一个查询,如下所示:

SELECT *
FROM `phones`
JOIN manufacturer USING (ManufacturerID)
JOIN operatingsystem USING (OSID)
WHERE (Price <='$phonesearch')
  OR (Model LIKE '%$phonesearch%')
  OR (OSName LIKE '%$phonesearch%')
  OR (Name LIKE '%$phonesearch%')
ORDER BY `Price` DESC
于 2013-02-07T12:34:55.077 回答