2013-11-23 2 views
-1

Итак, у меня есть следующий фрагмент кода.Показать значения MySQL в определенном порядке

$sql = "SELECT TitreEvent, DescriptionEvent, MomentEvent, image_small, Confidentialite, ID, Creation, Username 
FROM events_home 
WHERE ID = '" . $dnn['IDcontact'] . "' 
ORDER BY Creation DESC"; 

Моя проблема в том, что я хочу отображать самые последние события в первую очередь (независимо от того, кто является пользователем). Но теперь события отображаются в соответствии с пользователями (IDcontact), а новые события размещаются в начале части пользователя.

Итак, если пользователь похож на второй в таблице, новые события, которые он будет добавлять, будут отображаться после событий первого пользователя. Но я хочу увидеть самые новые события в верхней части списка, и я понятия не имею, как это сделать.

EDIT Таким образом, отсутствует недостающая часть. Я попытался поместить SORT BY RAND() в первый запрос, но он не меняет anyting. Он просто помещает первого пользователя на второе место, а второй - в первую очередь.

<?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

** Нет ** идея? Прочитайте предложение 'WHERE' и предложение' ORDER BY'. –

+0

Вы говорите, чтобы посмотреть в мой запрос, потому что у меня есть ошибка ??? Или вы говорите, что я не могу поставить WHERE и ORDER BY в тот же запрос? – freddy

+1

В запросе, который вы включили, отображаются только результаты для одного идентификатора пользователя. Если вы пытаетесь получить результаты для нескольких пользователей, пожалуйста, покажите нам полный код. – jcsanyi

ответ

1

Я полагаю, вы используете это в цикле из предыдущего результата запроса. В этом случае вам нужно изменить «родительский» запрос. Если такого нет, тогда почему вы сортируете результаты по идентификатору пользователя и ожидаете результатов независимо от пользователя?

EDIT:

Вы никогда не должны выполнять запросы в петлях.

<?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 

Вот ваш запрос, надеюсь, что это поможет.

+0

Это комментарий, особенно часть о вашем вопросе * «Почему вы сортируете результаты по идентификатору пользователя и ожидаете результатов независимо от пользователя?» * –

+0

Я сам не очень риторический. Я обычно задаю вопросы в комментариях, а затем представляю фактический ответ для решения проблемы OP при представлении полностью протестированного кода. –

+0

@ Fred-ii- Как вы видите, есть код, который OP не показывал. Как вы думаете, я бы ответил на фактический фрагмент кода? Это круто, я не делаю этого для голосов. Придерживайтесь для редактирования, посмотрите, нравится ли это вам. –

Смежные вопросы