我從數據庫中得到一堆id - 對於每個id,我想執行一個mysql查詢來獲取另一個表中的相關行。這工作正常,但我也需要獲取登錄用戶的類似數據。使用我正在使用的mysql查詢 - 它根據最初拉出的ID數重複登錄的用戶數據。這是有道理的,雖然不是我想要的。我不希望重複的數據爲登錄用戶,我需要數據來自一個查詢,所以我可以用時間戳命令的東西。在php while循環中重複
<?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語句,您應該也可能使用mysqli或PDO而不是mysql_ *。 –
您的代碼也遭受[N + 1問題](http://stackoverflow.com/questions/97197/what-is-the-n1-selects-problem)。 –