2015-01-08 10 views
0

데이터베이스에서 데이터를 가져 오는 중 두 쿼리에서 while()을 사용하여 다른 mysql_query로 다시 가져 오려고합니다.하지만 사용하기 때문에 결과가 한 번 이상 생성되는 문제 첫 번째 쿼리에서 그래서 첫 번째 쿼리 while()없이 모든 데이터를 얻으려면 어떤 대답?PHP - 데이터베이스에서 데이터 가져 오기 후 다시 가져 오기

$AllFrnd = "SELECT friend , followers FROM frndlist WHERE userid = '".$_SESSION[' user_id ']."' ORDER BY id DESC"; 
$getfrnd = mysql_query($AllFrnd); 
while($frnd = mysql_fetch_array($getfrnd)) { 
    $query2 = "SELECT * FROM post WHERE (userid ='".$frnd['friend']."') OR (userid =  '".$frnd['followers']."') OR (userid = '".$_SESSION[' user_id ']."') ORDER BY id DESC"; 
    $rs = mysql_query($query2); 
    while($row = mysql_fetch_array($rs)) { 
     echo ''.$row['content'].''; 

답변

1

당신은 다음과 같은 쿼리를 사용할 수 있습니다

SELECT * 
FROM post 
WHERE userid IN (
    SELECT followers 
    FROM frndlist 
    WHERE userid = '" . $_SESSION['user_id'] . "' 
) 
OR userid IN (
    SELECT friend 
    FROM frndlist 
    WHERE userid = '" . $_SESSION['user_id'] . "' 
) 
OR userid = '" . $_SESSION['user_id'] . "' 
ORDER BY id DESC 
2

당신이 시도 할 수 있습니다 :

// Associative array 

    $frnd =mysql_fetch_array($getfrnd,MYSQL_ASSOC); 

를 다음 등 데이터를 얻을 :

echo $frnd ["friend"] 
echo $frnd ["followers"] 

과 대신 mysqli_fetch_array을 사용해야합니다.

mysql_fetch_array의이

0

당신은 easyly이 기능

function sel($table,$field="*", $condition="1",$sort=""){ 
    if($sort!='') $sort="order by $sort "; 
    //echo "select $field from $table where $condition $sort "; 
    $sel_query=mysql_query("select $field from $table where $condition $sort "); 
    //$sel_result=array(); 
    while([email protected]_fetch_array($sel_query)) 
    { 
     $sel_result[]=$temp_res; 
    } 
    return isset($sel_result)?$sel_result: 0; 
} 


while($frnd = mysql_fetch_array($getfrnd)) { 
    $temp_res=sel("post","*"," (userid ='".$frnd['friend']."') OR (userid =  '".$frnd['followers']."') OR (userid = '".$_SESSION[' user_id ']."') ORDER BY id DESC"); 
    if($temp_res)foreach($temp_res as $row){ 
     echo $row['content']; 
    } 
} 
를 사용하여 처리 할 수 ​​있습니다 도움이되기를 바랍니다