选择mysql数据库不起作用

时间:2013-06-21 20:31:42

标签: php mysql

我只是想创建一个代码(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'';
}
?>

1 个答案:

答案 0 :(得分:0)

你正在执行两个查询(好吧,三个,但第一个完成两次)

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

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

你必须调整你的代码的逻辑,但像这样的语句应该一次性获取所有内容。

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