-1

我只是想创建一个代码(WALL POST),我只能看到我的朋友按“feedid”排序的帖子,但它不是按“feedid”排序的……我该怎么办?

<?php
$user = $_SESSION['username'];
$from12 = mysql_query("SELECT * FROM friends WHERE username = '$user'");
if(mysql_num_rows($from12) != 0){
    $from = mysql_query("SELECT * FROM friends WHERE username = '$user'");
    while($row2 = mysql_fetch_object($from))
    {
       $from1 = $row2->friend;
       $files = glob('lang/'. $lang .'.xml');
       foreach($files as $file){
           $ergebnis = mysql_query("SELECT * FROM feed WHERE username = '$from1' ORDER BY feedID DESC");
           while($row = mysql_fetch_object($ergebnis))
           {
               echo' <div class="panel"><a href="user.php?lang='. $lang .'&user='. $row->username .'"><strong>'. $row->username .'</strong></a> ('.$row->date.'):<br/> '. $row->text .'<a href="com.php?id='. $row->feedID .'&lang='. $lang .'"><img src="'.$row->pic.'"></a><br/><a href="com.php?id='. $row->feedID .'&lang='. $lang .'">'. $xml->reply .'</a></div>';
            }
        }
    }
}
else{
  echo'';
}
?>
4

1 回答 1

0

您正在执行两个查询(嗯,三个,但第一个查询做了两次)

第二个查询获取更新,但它为每个朋友单独运行。您需要将两者结合起来才能使 ORDER 起作用。像这样的东西应该工作:

SELECT 
    *
FROM
    feed 
WHERE 
    username IN (SELECT friend FROM friends WHERE username='$username') 
ORDER BY feedID DESC

您必须调整代码的逻辑,但类似该语句的内容应该一次性获取所有内容。

ObNote - 您应该切换到使用 PDO 或 mysqli 进行数据库连接,因为它们更安全。另外,我没有测试过上述内容,但它至少应该给你正确的想法。

于 2013-06-21T20:43:58.640 回答