2016-05-30 114 views
-1

我有一個table和index.php。我可以用sql查詢填充表列。該查詢不包括排序。後來我添加了一個排序按鈕。當我點擊按鈕時,我想用查詢進行排序。用php發送sql請求

$query="SELECT city, street, city_v,street_v,id_seq_x,page_title, 
page_url, uniq_key, price, currency, to_char(date, 'DD-MM-YYYY') AS date,situation, 
situation_v, categories,categories_v FROM information"; 

İt是我的查詢。我填表列。後來我想運行這個查詢。

$query2="order by price"; 
$query_last=$query.$query2; 

當我點擊按鈕如何運行此查詢?例如:

$("#btn").click(function(){ 
    window.location.href="index.php?sort="+$query_last;}); 

我希望我能解釋得夠多。

+2

您需要在查詢的兩個部分之間放一個空格。另外,用於連接PHP中字符串的語法不正確。你需要使用'''而不是'+'。 – Chris

+1

而不是回發到服務器,並運行另一個數據庫查詢只是爲了對已有的數據進行排序,那麼爲什麼不利用客戶端排序呢?既然你已經在使用jquery,那麼你應該看看https://datatables.net/ –

回答

1

您需要使用$_GET變量從網址中提取排序值。

你的情況,這將是:

$query2 = isset($_GET['sort']) ? $_GET['sort'] : false; 

如果排序是空的,$query2會是假的。如果不是都會有這樣的價值:命令%020by%20price

該查詢是行不通的,除非你將explode%20字符串,之後再次破滅它的詞之間加空格(好吧,我想;我不知道,如果20%將被解析爲空格)......

所以我建議你使用這種方式:

$query2 = isset($_GET['sort']) ? $_GET['sort'] : false; 

現在你以後jQuery的點擊按鈕:

$("button").click(function() { 
    window.location = 'index.php?sort=true'; 
}); 

然後,你可以使用if else語句檢查排序是正​​確的:

if ($query2) { 
    $query2 = 'order by price'; // re-assign the variable another value 
    $sql = $query . ' ' . $query2 // Notice the space between the queries 
} 

在此之後,你可以使用新的格式化的查詢來提取數據。