2013-11-23 4 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

포함 된 쿼리는 단일 사용자 ID에 대한 결과 만 표시합니다. 여러 사용자에 대한 결과를 검색하려는 경우 전체 코드를 표시하십시오. – jcsanyi

답변

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 

여기가 귀하의 질문입니다.

+0

이것은 의견입니다. 특히 질문에 관한 부분입니다. * "사용자 ID로 결과를 정렬하고 사용자와 상관없이 모든 결과를 기대하는 이유는 무엇입니까?"* –

+0

나는 수사 학적 유형이별로 아닙니다. 필자는 보통 코멘트에서 질문을 한 다음, 완전히 테스트 된 코드를 제시 할 때 OP 문제를 해결하기 위해 실제 답변을 제시합니다. –

+0

@ Fred-ii- OP에서 볼 수 없었던 코드가 있습니다. 실제 코드를 가지고 어떻게 대답하겠습니까? 나는 투표를 위해 이것을하지 않는다는 것은 멋지다. 편집을 위해 주변에 붙어있어, 그것이 당신을 기쁘게하는지보십시오. –

관련 문제