2012-09-02 79 views
0

我有3種不同類型的查詢來檢索同一頁面中的數據。我將如何結合在一起?以下是查詢:如何將3個mysql查詢結合在一起?

<?php 
$sql = "SELECT * FROM general WHERE ((day1sql >= now()))"; 
if($_GET!=""){ 
$mydate = mysql_real_escape_string($_GET['datepicker']); 
if($mydate!=""){  
$sql = "SELECT * FROM general WHERE ((day1 = '$mydate'))"; 
}  
} 
if($_GET!=""){ 
$city1 = mysql_real_escape_string($_GET['cityText']); 
if($city1!=""){ 
$sql = "SELECT * FROM general WHERE (city = $city1))"; 
}  
} 

datepicker是一個日曆,用戶可以根據日期獲取數據。並有一個下拉菜單,用戶可以選擇城市名稱。前兩個查詢工作正常。我很困惑如何整合第三個查詢?

+1

正如在[介紹](http://www.php.net/manual/en/intro.mysql.php)中給mysql手冊的'mysql_ *'函數一章所述:*不推薦使用此擴展名用於編寫新的代碼。相反,無論是[mysqli](http://www.php.net/manual/en/book.mysqli.php)還是[PDO_MySQL](http://www.php.net/manual/en/ref.pdo應該使用-mysql.php)擴展名。另請參閱[MySQL API概述](http://www.php.net/manual/en/mysqlinfo.api.choosing.php)以獲得進一步幫助,同時選擇MySQL API。* – eggyal

回答

2

可以使用logical OR operator到您的篩選條件相結合:

SELECT * FROM general WHERE day1sql >= now() OR day1 = '$mydate' OR city = '$city1' 
+0

它不工作... – user1641524

0

像這樣的東西可能會奏效:

sql = "SELECT * FROM general WHERE (day1sql >= now())"; 

if(isset($_GET['datepicker'])){ 
    $mydate = mysql_real_escape_string($_GET['datepicker']); 
    $sql .= " AND (day1 = '$mydate')";   
} 
if(isset($_GET['cityText'])){ 
    $city1 = mysql_real_escape_string($_GET['cityText']); 
    $sql .= " AND (city = $city1)"; 
}  

// execute $sql 

我們正在與AND條件追加SQL。我相信這就是你想要做的。

+0

感謝你爲你的幫助..這一個也不工作.... – user1641524

+1

如果你解釋「不工作」,它會更有幫助。我的意思是,如果你提供了更多關於它給予什麼和你期望的細節,我們可能會提出更好的解決方案! :) –

+0

確定.... CityText不給出輸出... datepicker工作正常.... – user1641524