如何通过更高的id sql订购

时间:2012-10-12 17:47:38

标签: php mysql

我在MYSQL中有行。

它们基本上是基于用户输入的文章和谣言。在我的查询中,我希望创建的表将后面的结果排在更高的位置。 Order By Query如何工作?

$query = "SELECT * FROM rumours";
$query.= "ORDER BY"
$query = mysql_query($query) or die('MySQL Query Error: ' . mysql_error( $connect ));

while ($row = mysql_fetch_assoc($query)) {
     $id = $row['id'];
     $band = $row['band'];
     $title = $row['Title'];
     $description = $row['description'];
     echo "<table border='1'>";
     echo "<tr>";
     echo "<td> $title  </td>";
     echo "</tr>";
     echo "<tr>";
     echo "<td class = 'td1'> $description </td>";
     echo "</tr>";
     echo "</table>";
}

1 个答案:

答案 0 :(得分:1)

关于您的代码段几乎没有。

  1. 使用列列表,避免选择*
  2. mysql_函数正在deprecated。您应该使用mysqli_PDO函数。
  3. 您可以直接调用列来节省时间,而不是重新分配变量。
  4. 当您要求首先显示记录时,这有什么标准?更高的id意味着记录是否更新?我在答案中假设了这一点。
  5. 以下是使用mysqli_的代码的改进版本:

    $link = mysqli_connect("localhost", "user", "pass", "db");
    
    if (mysqli_connect_errno()) {
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }
    
    $q = "SELECT id, band, Title, description FROM rumours ORDER BY id DESC";
    $result = mysqli_query($link, $q);
    
    while($row = mysqli_fetch_array($result, MYSQLI_BOTH)) {
         echo "<table border='1'>";
         echo "<tr>";
         echo "<td>" . $row[id] . "</td>";
         echo "</tr>";
         echo "<tr>";
         echo "<td class = 'td1'>" . $row[description] . "</td>";
         echo "</tr>";
         echo "</table>";
    }
    
    mysqli_free_result($result);