-1

我在 MYSQL 中有行。

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

$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>";
}
4

1 回答 1

1

关于您的代码段的几件事。

  1. 使用列列表并避免选择*
  2. mysql_功能正在被弃用。您应该使用其中一个mysqli_PDO功能。
  3. 您可以通过直接调用列而不是重新分配变量来节省时间。
  4. 当您要求首先显示较旧的记录时,这样做的标准是什么?更高id的记录是否意味着更新?我已经在我的回答中假设了这一点。

这是您的代码的改进版本,使用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);
于 2012-10-12T18:04:09.783 回答