0

そのため、入力されたもの (電話のブランド、モデル、オペレーティング システム、価格の降順) を検索する検索ボックスがあり、検索条件が満たされているかどうかに応じて、各結果を独自のボックスに表示するループがあります。ただし、複数のクエリを追加すると、そのうちの 2 つのうちの 1 つが機能し、残りは機能しません。コードは以下のとおりです。

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。次のように、1 つのクエリに減らします。

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 に答える