我正在尝试对从mysql生成的表中的列数据进行排序。这就是我想要我的桌子的方式: -
<th><a href='view.php?sort=first_name'>First Name</th>
<th><a href='view.php?sort=last_name'>Last Name</th>
这是我的查询,但我收到错误
解析错误:语法错误,C中意外的'if'(T_IF)
$result = mysql_query("SELECT * FROM users")
if($_GET['sort'] == 'first_name'){
$result .= "ORDER BY first_name";
}
else if ($_GET['sort'] == 'last_name'){
$result .= "ORDER BY last_name";
}
or die(mysql_error());
我知道我的问题出在查询中,但我该如何纠正呢?
答案 0 :(得分:2)
你错过了分号和空格:
$result = mysql_query("SELECT * FROM users ");
^ ^
Parse error
是由于缺少分号,另一个错误将在稍后出现:)
答案 1 :(得分:1)
ORDER BY关键字前面需要一个空格,并且存在一些不正确的终止。不要尝试。
$result = "SELECT * FROM users";
if($_GET['sort'] == 'first_name'){
$result .= " ORDER BY first_name";
}
else if($_GET['sort'] == 'last_name'){
$result .= " ORDER BY last_name";
}
$result = mysql_query($result) or die(mysql_error());
答案 2 :(得分:0)
你需要在列名和ORDER BY
子句之间留出额外的空间。
$result .= " ORDER BY first_name";
^ add extra space here
也
$result .= " ORDER BY last_name";
^ add extra space here
完整摘录:
<击> 撞击>
<击>$query = "SELECT * FROM users";
if($_GET['sort'] == 'first_name')
{
$query .= " ORDER BY first_name";
}
else if ($_GET['sort'] == 'last_name')
{
$query .= " ORDER BY last_name";
}
$result = mysql_query($query) or die(mysql_error());
击> <击> 撞击>
或者为什么不直接这样做,
$sortColumn = $_GET['sort'];
$query = "SELECT * FROM users ORDER BY $sortColumn";
$result = mysql_query($query) or die(mysql_error());