2011-02-22 3 views
2

쿼리에서 이름순으로 (영문자 순) 쿼리를 $ res에 붙여 넣은 다음 결과를 반복합니다.쿼리가 끝날 때 특정 레코드를 배치하십시오.

while($rs = mysql_fetch_assoc($res)){ 
    echo $rs['name']; 
} 

이제는 루프 중에 "웹 마스터"이름이 있습니다. 나는 "웹마 스터"를 가져 와서 루프 끝 부분에 배치해야합니다 (그래서 마지막으로 울림). 또는 "webmaster/Affiliate ProgramsWebshops"를 $ res에 넣으십시오 (while 루프를 치기 전에 쿼리가 끝날 때)

+0

모든 행운을 빕니다 아직? –

답변

0

ORDER BY 
    name 

ORDER BY 
    IF(name LIKE 'webmaster',1,0), 
    name 

에 참고 :

가장 쉬운 방법은 쿼리를 편집에서 순서를 변경하는 것이 IF은 MySQL의 구문입니다 - 당신은 당신이 사용하고 게시 느릅 나무 데이터베이스를 havn't는 postgres에 (100 % 확실하지 않은) 비슷한 것이 될 것입니다 :

ORDER BY 
    CASE WHEN name ILIKE 'webmaster' THEN 1 ELSE 0 , 
    name 

편집이를 설명 : 주문이 방식을 변경하여, 그것은 이름이 다른 모든 경우에 "웹 마스터"또는 0 경우 1이 포함 된 주문에 추가 열을 가하고 같다. 이 "열"로 주문하여 먼저 "웹 마스터"는 말에 항상 (또는 모든 "웹 마스터"의 - 하나 이상있는 경우)이 같은

0

아마 뭔가 :

$webmasterArray = array(); 
while($rs = mysql_fetch_assoc($res)) 
{ 
    if($rs['name'] == "webmaster") 
     $webmasterArray = $rs; 
    else 
     echo $rs['name']; 
} 
if($webmasterArray) 
    echo $webmasterArray['name']; 
+0

...'echo'하기 전에 엘리먼트가 존재하는지 체크하지 않기 때문에 경고 메시지를 줄 것이고'Array'를 만들지조차 모른다! –

관련 문제