所以我有下面的一段代码。
$sql = "SELECT TitreEvent, DescriptionEvent, MomentEvent, image_small, Confidentialite, ID, Creation, Username
FROM events_home
WHERE ID = '" . $dnn['IDcontact'] . "'
ORDER BY Creation DESC";
我的问题是,我想首先显示最近的事件(不管用户是谁)。但现在,事件是根据用户(IDcontact)显示的,并且新的事件被放置在用户部分的开头。
因此,如果用户与表中的第二个用户相似,则他将添加的新事件将显示在第一个用户的事件之后。但我想把最新的活动排在首位,我不知道怎么做。
编辑所以缺少部分。我曾尝试将SORT BY RAND()放在第一个查询中,但它并没有改变任何内容。它只是将第一个用户放在第二个位置,而第二个用户则放在第一个位置。
<?php
$dn = mysql_query("SELECT IDcontact FROM contacts WHERE ID = '".$_SESSION['id']."'");
if(mysql_num_rows($dn)>0)
{
while ($dnn = mysql_fetch_array($dn)) {
$req = mysql_query("select TitreEvent, DescriptionEvent, MomentEvent, image_small, Confidentialite, ID, Creation, Username from events_home where ID = '".$dnn['IDcontact']."' ORDER BY Creation DESC");
if(mysql_num_rows($req)>0)
{
while($dnn = mysql_fetch_array($req)) {
?>
我想您是在上一个查询结果的循环中运行这个。在这种情况下,您需要更改"parent"查询。如果没有这样的东西,那么为什么要根据用户ID对结果进行排序,并期望所有结果而不管用户是谁?
编辑:
您永远不应该在循环中运行查询。
<?php
$dn = mysql_query("
SELECT e.TitreEvent, e.DescriptionEvent, e.MomentEvent, e.image_small, e.Confidentialite, e.ID, e.Creation, e.Username,c.IDcontact
FROM events_home e LEFT JOIN contacts c ON c.ID = e.ID
ORDER BY e.Creation DESC
LIMIT 0,30"); // Just in case
这是你的问题,希望能有所帮助。