MySQL/PHP按位置排序


MySQL/PHP Order By Where

我有以下查询-

$query = mysql_query("SELECT * FROM test where admin = 'Yes' order by name = '$_GET[name]' DESC");
while($row = mysql_fetch_array($query))
{
   $id.=$row[id];
}
echo $id;

我想要一个从$_GET[名称]的id开始的id列表,但是它返回了一个下面有行的起始名称的列表?有什么想法吗?

非常感谢。

  1. 使用阵列

  2. 您需要在列名称周围使用引号

$query = mysql_query("SELECT * FROM test where admin = 'Yes' order by name = '$_GET[name]' DESC");
$ids = array();
while($row = mysql_fetch_array($query))
{
   $ids[] =$row['id'];
}
// Your IDs are now in an array which is easier to work with
print_r($ids);

仅供参考,您不应该在新代码中使用mysql_*函数。它们不再被维护,并被正式弃用。是否看到红框?了解准备好的语句,并使用PDO或MySQLi-本文将帮助您决定哪一个。如果你选择PDO,这里有一个很好的教程。

您还对SQL注入持开放态度