таблица friends:
- z_id - идентификатор записи о новой дружбе между двумы пользователями
- id - ид пользователя который подружился
- friend_id - ид друга, с которым подружился id
- new - новый друг или нет
- date - дата добавления в друзья
- id -
- username
- password
- fname
- sname
- birth_date
- country
- city
//Считывание id друга у определённого пользователя из таблицы friends
<?php
include 'sql.php';
$sql = "SELECT id, friend_id, date, new, z_id FROM friends WHERE id='$user_id' and new='no'";
$result = mysql_query($sql)or die(mysql_error());
$row=mysql_fetch_assoc($result);
$friend_id=$row['friend_id'];
//
//Считывание информации из второй таблицы login по id друга
$sqlnl = "SELECT username, sname, fname, birth_date, country, city FROM login WHERE id='$friend_id'";
$result = mysql_query($sqlnl)or die(mysql_error());
$rows=mysql_fetch_assoc($result);
$f_username=$rows['username'];
$r_name=$rows['sname'];
$r_familiya=$rows['fname'];
$birthdate=$rows['birth_date'];
$country=$rows['country'];
$city=$rows['city'];
//
//А тут уже идёт вывод друзей с инфой извлечённой из второй таблицы
$sqlfr = "SELECT id, friend_id, date, new, z_id FROM friends WHERE id='$user_id' and new='no' order by date desc";
$result = mysql_query($sqlfr)or die(mysql_error());
while($r=mysql_fetch_assoc($result))
{
echo "$r_name $r_familiya".'<BR>';
echo "$country, г.$city".'<BR>';
echo " ".$r['friend_id'].'<BR>';
echo " <a href='delete_friend_z.php?id=".$r['z_id']."'>Удалить</a>".'<BR>';
}
//
?>
В итоге выводит друзей, но с одинаковой инфой у всех друзей, причём если сделать вывод id у каждого друга, то у каждого он разный, а вот инфа одна и также (инфа о друге из таблицы).
Подскажите пожалуйста, я перебровал разные варианты не помогает.
Спустя 2 часа, 9 минут, 45 секунд (23.04.2010 - 19:19) andrey написал(а):
Не пойму, у юзера только один друг или несколько? Если выводишь в цикле видимо несколько. А почему считывание информации происходит не в цикле, а только для одного друга? Вот и получаешь одинаковую информацию для всех друзей...
Спустя 9 часов, 24 минуты, 48 секунд (24.04.2010 - 04:44) Vulkan написал(а):
Да, несколько, сейчас попробую сделать считывание инфы в цикле, спасибо за подсказку
.

Спустя 1 час, 27 минут, 55 секунд (24.04.2010 - 06:12) Vulkan написал(а):
Сделал вывод в цикле:
Не получается, friend_id из первого Select-запроса берётся для каждого пользователя свой, это то что надо, а вот данные выводятся всё равно по первому ид, т.е. одинаковые для кажого пользователя...
//Считывание id друга у определённого пользователя из таблицы friends
<?php
include 'sql.php';
$sql = "SELECT id, friend_id, date, new, z_id FROM friends WHERE id='$user_id' and new='no'";
$result = mysql_query($sql)or die(mysql_error());
while($row=mysql_fetch_assoc($result))
{
$friend_id=$row['friend_id'];
}
//
//Считывание информации из второй таблицы login по id друга
$sqlnl = "SELECT username, sname, fname, birth_date, country, city FROM login WHERE id='$friend_id'";
$result = mysql_query($sqlnl)or die(mysql_error());
while($rows=mysql_fetch_assoc($result))
{
$f_username=$rows['username'];
$r_name=$rows['sname'];
$r_familiya=$rows['fname'];
$birthdate=$rows['birth_date'];
$country=$rows['country'];
$city=$rows['city'];
}
//
//А тут уже идёт вывод друзей с инфой извлечённой из второй таблицы
$sqlfr = "SELECT id, friend_id, date, new, z_id FROM friends WHERE id='$user_id' and new='no' order by date desc";
$result = mysql_query($sqlfr)or die(mysql_error());
while($r=mysql_fetch_assoc($result))
{
echo "$r_name $r_familiya".'<BR>';
echo "$country, г.$city".'<BR>';
echo " ".$r['friend_id'].'<BR>';
echo " <a href='delete_friend_z.php?id=".$r['z_id']."'>Удалить</a>".'<BR>';
}//
?>
Не получается, friend_id из первого Select-запроса берётся для каждого пользователя свой, это то что надо, а вот данные выводятся всё равно по первому ид, т.е. одинаковые для кажого пользователя...
Спустя 5 часов, 11 минут, 31 секунда (24.04.2010 - 11:24) cyberx написал(а):
Тебе тип этого?
У меня тип этого, id кто послал приглашение на дружбу и id кто принял. В цикле выводится id моих друзей без повторения
$friends = mysql_query("SELECT `friend_author` FROM `friends` WHERE `friend_address` = '$id'
UNION DISTINCT
SELECT `friend_address` FROM `friends` WHERE `friend_author` = '$id'",db) or die(mysql_error());
while($my_friends = mysql_fetch_assoc($friends))
{
$friend_id = $my_friends['friend_author'];
// $friend_id - это уже id твоих друзей
}
У меня тип этого, id кто послал приглашение на дружбу и id кто принял. В цикле выводится id моих друзей без повторения
Спустя 5 часов, 21 минута, 14 секунд (24.04.2010 - 16:45) Vulkan написал(а):
Нет, не проходит выводит ошибку, ну это не то что мне надо, но всё равно спасибо. Вот сократил код, это код который выводит одного друга, даже если их два:
Тут остаётся маленькая заковырочка, например что то добавить в выборку, чтобы она перепровяряла всё ли она вывела после вывода друга например...
<?php
include 'sql.php';
//Запрашивает id друзей, который дружит с пользователем
$sql = "SELECT id, friend_id, date, new, z_id FROM friends WHERE id='$user_id' and new='no'";
$result = mysql_query($sql)or die(mysql_error());
while($row=mysql_fetch_assoc($result))
{
$friend_id=$row['friend_id'];
}
//
//Запрашивает инфу по id друзей из второй таблицы
$sqlnl = "SELECT username, sname, fname, birth_date, country, city FROM login WHERE id='$friend_id'";
$result = mysql_query($sqlnl)or die(mysql_error());
while($rows=mysql_fetch_assoc($result))
{
$f_username=$rows['username'];
$r_name=$rows['sname'];
$r_familiya=$rows['fname'];
$birthdate=$rows['birth_date'];
$country=$rows['country'];
$city=$rows['city'];
echo "$f_username";
}
?>
Тут остаётся маленькая заковырочка, например что то добавить в выборку, чтобы она перепровяряла всё ли она вывела после вывода друга например...
Спустя 22 минуты, 21 секунда (24.04.2010 - 17:07) Vulkan написал(а):
я решил проблему)))
Всё выводится идеально, без повторений и выводятся все друзья))!! Спасибо всем кто помогал)
$sql = "SELECT friends.id, friends.friend_id, friends.date, friends.new, friends.z_id, login.sname, login.id FROM friends LEFT
JOIN login ON (friends.friend_id=login.id)
WHERE friends.id='$user_id' and friends.new='no'";
$result = mysql_query($sql)or die(mysql_error());
while($r=mysql_fetch_assoc($result))
{
$f_username=$r['sname'];
echo "$f_username";
Всё выводится идеально, без повторений и выводятся все друзья))!! Спасибо всем кто помогал)