Я бы посоветовал вам делать все в одном SQL (включая функцию friendsLookup, потому что я уверен, что для этого есть еще один запрос mysql), потому что он станет очень медленным.Предположим, что Таблица для ваших пользователей - это «пользователь».Используйте этот SQL:
$sql = "SELECT * FROM user u, friend f WHERE f.userid1 = $myUsername AND f.friendstatus = '1' AND u.userid = f.userid2
UNION
SELECT * FROM user u, friend f WHERE f.userid2 = $myUsername AND f.friendstatus = '1' AND u.userid = f.userid1";
Это позволит получить всех ваших друзей (включая информацию о них).Более того, если вы хотите отсортировать или ограничить (или что-то еще, что вы хотели сделать с вашими результатами), вы можете сделать это:
Например, вы хотите отсортировать своих друзей по имени в порядке возрастания:1006 *
$sql = "SELECT * FROM (
SELECT * FROM user u, friend f WHERE f.userid1 = $myUsername AND f.friendstatus = '1' AND u.id = f.userid2
UNION
SELECT * FROM user u, friend f WHERE f.userid2 = $myUsername AND f.friendstatus = '1' AND u.id = f.userid1 ) tblResult r
ORDER BY r.first_name ASC";
Затем вы можете получить окончательные результаты, выполнив следующее:
$query = mysql_query( $sql );
while ( $col = mysql_fetch_array( $query ) ){
?>
<!-- DO YOUR THING HERE WITH PHP -->
<?php
}
Наконец, я хотел бы прокомментировать ваш цикл.Обратите внимание, что внутри ваших циклов у вас есть этот код:
$myFriends = mysql_query("Select * from friends where userid1 = $myUsername AND friendstatus = '1'");
$friend = mysql_fetch_array($myFriends);
Это на самом деле не нужно.Первая строка просто сбрасывает ваш запрос каждый цикл.Удалите первую строку, а во второй строке вместо $ myFriends используйте $ friends (это первый запрос, который у вас вверху).Таким образом, это должно выглядеть так для первых двух строк в вашем первом цикле:
$friend = mysql_fetch_array($friends);
Сделайте то же самое для второго цикла.