php
  • mysql
  • implode
  • 2010-01-16 3 views 1 likes 
    1

    implode() 함수는 일반 배열에서 작동하지만 mysql_fetch_array로 만든 배열에서는 작동하지 않습니다. (mysql_fetch_row도 시도했습니다)MySQL 배열에 어떻게 참여합니까?

    어떻게 작동합니까?

    는 위 정의 :

    $friends = mysql_query("SELECT * FROM friend 
    

    WHERE U1 = '$ 사용자 정보 [이름]' 또는 U2 = '$ 사용자 정보 [이름]' ");

    그리고 더 아래 :

    $friendsrow = mysql_fetch_array($friends); 
    $friendsrow = join(",",$friendsrow); 
    
    $friendnotes = mysql_query("SELECT nid,user,subject,message FROM friendnote WHERE user IN ($friendsrow) ORDER BY timestamp ASC LIMIT 0,5"); 
    

    답변

    1

    당신은 항상 하위 SEL을 사용할 수 있습니다 (당신이 궁금해 경우, 그 커뮤니티 사이트입니다) ect하고 IN() 운영자에게 전달하십시오.

    0

    mysql_fetch_array는 정상적인 배열을 반환하지만 특별한 것은 없습니다. 어쩌면 당신의 질의가 아무 것도 반환하지 않을 수도 있고,이 경우 mysql_fetch_array는 false을 반환합니다. 결과를 내파하기 전에 확인하십시오.

    1

    내가 잘못 생각한 것 같습니다. 당신은 전체 친구 ROW에 참여하고 있으므로 결과는 '1, Johnny, 23years, etc.'입니다. 친구 ID의 '1,2,3,4,5'목록을 원한다고 가정합니다. Eimantas가 ​​말한 것처럼 하위 쿼리를 사용하는 것이 좋습니다. 그룹 CONCAT는

    SELECT nid,user,subject,message 
    FROM friendnote 
    WHERE user IN ((SELECT u2 FROM friends WHERE u1 = $userinfo[username]) 
           UNION 
           (SELECT u1 FROM friends WHERE u2 = $userinfo[username])) 
    ORDER BY timestamp ASC LIMIT 0,5 
    
    +0

    감사합니다, 오류가 사라하지만 실제 스크립트는 아무것도 = (내가 사용 을하지 않는 것 : $ friendnotes =는 mysql_query ("friendnote FROM 주제 꾸벅 꾸벅, 사용자, 메시지 을 선택 WHERE ('SELECT U1, 은 = $ 사용자 정보 [이름] 또는 U2 = $ 사용자 정보 [이름] WHERE를 U1 친구 U2 ') 타임 스탬프 ASC 제한 0.5 BY ORDER ")의 사용자, 내가 시도 mysql_fetch_arra와 같은 MySQL 함수를 사용하는 방법 y()는 오류를 반환하지 않지만 결과를 반환하지 않습니다. (예, WHERE에 일치하는 데이터베이스 항목을 알고 있습니다) – Ryan

    +0

    업데이트 된 쿼리를 참조하십시오. –

    3
    관련 문제