我只是想创建一个代码(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'';
}
?>
答案 0 :(得分:0)
你正在执行两个查询(好吧,三个,但第一个完成两次)
第二个查询获取更新,但它是为每个朋友单独运行的。您需要将两者结合起来才能使ORDER工作。这样的事情应该有效:
SELECT
*
FROM
feed
WHERE
username IN (SELECT friend FROM friends WHERE username='$username')
ORDER BY feedID DESC
你必须调整你的代码的逻辑,但像这样的语句应该一次性获取所有内容。
ObNote - 您应该切换到使用PDO或mysqli进行数据库连接,因为它们更安全。另外,我没有测试过上述内容,但它至少应该给你正确的想法。