데이터베이스에서 ID를 얻는 중입니다. 각 ID마다 다른 테이블에서 관련 행을 가져 오기 위해 mysql 쿼리를 수행하려고합니다. 로그인 한 사용자에 대해 비슷한 데이터를 가져와야하지만 정상적으로 작동합니다. 내가 사용하고있는 mysql 질의를 사용하면 원래 끌어온 ID의 개수에 따라 로그인 한 사용자 데이터를 복제한다. 이것은 내가 원하는 바는 아니지만 의미가 있습니다. 나는 로그인 한 사용자에 대해 중복 데이터를 원하지 않으며 타임 스탬프를 사용하여 물건을 주문할 수 있도록 한 쿼리에서 데이터가 필요합니다.루프에서 PHP가 중복되는 경우
<?php
mysql_select_db($database_runner, $runner);
$query_friends_status = "SELECT DISTINCT rel2 FROM friends WHERE rel1 = '" . $_SESSION ['logged_in_user'] . "'";
$friends_status = mysql_query($query_friends_status, $runner) or die(mysql_error());
$totalRows_friends_status = mysql_num_rows($friends_status);
while($row_friends_status = mysql_fetch_assoc($friends_status))
{
$friends_id = $row_friends_status['rel2'];
mysql_select_db($database_runner, $runner);
$query_activity = "SELECT * FROM activity WHERE user_id = '$friends_id' OR user_id = '" . $_SESSION['logged_in_user'] . "' ORDER BY `timestamp` DESC LIMIT 15";
$activity = mysql_query($query_activity, $runner) or die(mysql_error());
$totalRows_activity = mysql_num_rows($activity);
echo "stuff here";
}
?>
PHP mysql_ 함수를 사용하지 않는 것이 좋습니다. mysqli_ 함수를 살펴보십시오.이 함수는 PHP에서 mysql 쿼리를 수행하는보다 새롭고 빠르고 안전한 방법입니다. –
아마도 JOIN 문을 사용해야하며 mysql_ *이 아닌 mysqli 또는 PDO를 사용해야한다. –
코드에 [N + 1 문제] (http://stackoverflow.com/questions/97197/what-is-the-n1-selects-problem)도 있습니다. –