2016-05-30 103 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 
} 

在此之后,你可以使用新的格式化的查询来提取数据。