PHP按降序打印MySQL查询

时间:2014-04-11 12:49:29

标签: php mysql

代码:

<?php
    $db=mysqli_connect("mysql17.000webhost.com","username","pwd","db");
    if (mysqli_connect_errno()){
        echo "Failed to connect to MySQL: " . mysql_connect_error();
    }
    $result = mysqli_query($db,"SELECT * FROM ChatBox");
    Print "<div style='text-align:center;'>";
    Print "<table border cellpadding=3 style='text-align:left;width:auto;left:auto;right:auto;display:inline-block;'>"; 
    while($info = mysqli_fetch_array( $result )) 
    { 
    Print "<tr>";
    Print "<th>User : </th> <td>".$info['User'] . " </td>";
    Print "<th>Content : </th> <td>".$info['Content'] . " </td></tr>";
    } 
    Print "</table></div>"; 

使用此代码,它将按添加内容的时间的顺序打印,我想要的是按照与内容时间相反的顺序打印加入

e.g。

添加内容之前


分贝:

User | Content
ABC  | Hello1
DEF  | Hello2
添加内容后

User | Content
ABC  | Hello1
DEF  | Hello2
GHI  | Hello3

使用此代码将打印

User : ABC
Content : Hello1
User : EFG
Content : Hello2
User : GHI
Content : Hello3

以及在向sql数据库添加内容后预期打印的内容:

User : GHI
Content : Hello3
User : EFG
Content : Hello2
User : ABC
Content : Hello1

如何打印此结果?任何人都可以提供代码吗?

3 个答案:

答案 0 :(得分:5)

  

“使用此代码,它将按照添加内容的时间顺序打印,我想要的是按照添加内容的时间相反的顺序打印它。”

您需要做的是创建一个具有日期/时间值的列,并根据该列对其进行排序;如果这就是你要问的。如果没有,请继续下面的答案。


原始答案

首先,你要混合两个MySQL API

mysql_connect_error()应该读作mysqli_connect_error() ---如果有任何错误信息,使用mysql_connect_error()就不会给你任何错误信息。

另外,你错过了"username中的引用(作为旁注)。

使用ORDER BY column DESC

<?php
    $db=mysqli_connect("xxx","xxx","xxx","xxx");
    if (mysqli_connect_errno()){
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    $result = mysqli_query($db,"SELECT * FROM ChatBox ORDER BY User DESC");
    Print "<div style='text-align:center;'>";
    Print "<table border cellpadding=3 style='text-align:left;width:auto;left:auto;right:auto;display:inline-block;'>"; 
    while($info = mysqli_fetch_array( $result )) 
    { 
    Print "<tr>";
    Print "<th>User : </th> <td>".$info['User'] . " </td>";
    Print "<th>Content : </th> <td>".$info['Content'] . " </td></tr>";
    } 
    Print "</table></div>"; 

修改

这是我的数据库从测试中打印出来的内容。 (按降序打印)

User :  Louise  Content :   Sicilly
User :  Larry   Content :   Italy
User :  FRED    Content :   Planet Earth
User :  BOB     Content :   Spain 

答案 1 :(得分:1)

这可以通过在SQL查询中使用ORDER BY关键字来完成。 要将结果打印到屏幕,您可以使用echo。

为了在PHP代码中呈现HTML,如果你写这样的东西,它可能更容易阅读:

<?php
$db = mysqli_connect("mysql17.000webhost.com","username", "pwd", "db");
if (mysqli_connect_errno()){
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($db, "SELECT * FROM ChatBox ORDER BY User DESC");
?>

<div style='text-align:center;'>
<table border cellpadding=3 style='text-align:left;width:auto;left:auto;right:auto;display:inline-block;'>
<?php while($info = mysqli_fetch_array( $result )): ?>
    <tr>
    <th>User : </th> <td><?php echo $info['User']; ?></td>
    <th>Content : </th> <td><?php echo $info['Content']; ?></td></tr>
<?php endwhile; ?>
</table></div> 

答案 2 :(得分:0)

只需使用Order by

即可
mysqli_query($db,"SELECT * FROM ChatBox ORDER BY User,Content DESC; ");

并使用echo打印数据

echo - 可以输出一个或多个字符串

打印 - 只能输出一个字符串,并始终返回1

    echo "<div style='text-align:center;'>";
    echo "<table border cellpadding=3 style='text-align:left;width:auto;left:auto;right:auto;display:inline-block;'>"; 
    while($info = mysqli_fetch_array( $result )) 
    { 
    echo "<tr>";
    echo "<th>User : </th> <td>".$info['User'] . " </td>";
    echo "<th>Content : </th> <td>".$info['Content'] . " </td></tr>";
    } 
    echo "</table></div>";