添加行以随机排序 - 希望它们位于顶部


Adding rows to get sorted randomly - want them on top

>我有一个"问题",我不知道它是怎么发生的。如果我通过 php 将行添加到我的表中,它只是将它们随机添加到某个地方。但我希望将它们添加到顶部。相反,它只是将它们全部添加到桌子上。

 $name = ($_GET["name"]);
 $sql = "INSERT INTO $DB_Table VALUES('$name')";
 $number = ($_GET["number"]);
 $sql = "INSERT INTO $DB_Table VALUES('$number')";
 $con = mysql_connect($DB_HostName,$DB_User,$DB_Pass) or die (mysql_error()); 
 mysql_select_db($DB_Name,$con) or die(mysql_error()); 
 mysql_query("INSERT INTO $DB_Table (Name,number)
 VALUES ('$name','$m_yolo')");

 $res = mysql_query($sql,$con) or die(mysql_error());

        mysql_close($con);
if ($res) {
    echo "success";
}else{
    echo "faild";
}// end else
?>

关系表中没有行排序这样的东西。如果要对它们进行排序,则需要使用 ORDER BY 子句。您可以添加TIMESTAMP列,您可以在选择数据时对其进行排序:11.3.1。日期、日期时间和时间戳类型

创建另一个表,但在其中添加一个 ID 自动递增列:

CREATE TABLE IF NOT EXISTS `table` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  `number` int(10) NOT NULL,
  PRIMARY KEY (`id`)
);

然后,您可以像这样插入新行:

$sql = "INSERT INTO $DB_Table (id, name,number) VALUES ('', '$name', '$number')";

然后,您的新条目将按 id 排序。您可以在选择查询中对它们进行排序:

$sql = "SELECT 'name', 'number' FROM `table` ORDER BY 'id' DESC";

不过,关于代码的一条评论是:像在代码开头那样直接使用 $_GET 中的值是不安全的。例如,尝试使用mysql_real_escape_string()