所以我有以下代码。
$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)) {
?>
答案 0 :(得分:1)
我想你是在以前的查询结果的循环中运行它。在这种情况下,您需要更改“父”查询。如果没有这样的事情,那么为什么你要根据用户的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
这是您的查询,希望有所帮助。