Существует проблема с моим сценарием на стене, один пост показан несколько раз на стене пользователя и один раз на стене его друга. Например, если у меня есть 5 друзей, сценарий будет показывать одно сообщение 5 раз.Проблемы со сценарием на стене
Как это показано на стене друга, эта часть работает хорошо, но проблема находится на собственной стене пользователя.
PHP код:
$qfu = "SELECT * FROM my_friends WHERE (user_id = '$user_id' OR friend_id = '$user_id') AND status = '1'";
$fu = mysql_query($qfu) or die(mysql_error());
$rowfu = mysql_num_rows($fu);
while ($rowf = mysql_fetch_array($fu)) {
$user_id = $rowf['user_id'];
$friend_id = $rowf['friend_id'];
$querymsgs = "SELECT * FROM messages where uid_fk = '$friend_id' OR uid_fk = '$user_id' order by msg_id DESC Limit 1";
$qmsgs = mysql_query($querymsgs) or die(mysql_error());
$row_msgs = mysql_num_rows($qmsgs);
while ($msgs = mysql_fetch_array($qmsgs)) {
$msg_id = $msgs['msg_id'];
$orimessage = $msgs['message'];
$message = tolink(htmlentities($msgs['message']));
$time = $msgs['created'];
$privacy = $msgs['privacy'];
if ($privacy == '0') {
$privacy = 'Only Me';
} elseif ($privacy == '2') {
$privacy = 'Public';
} else {
$privacy = 'Friends';
}
$uid = $msgs['uid_fk'];
$fullname = $msgs['fname'] . " " . $msgs['lname'];
$face = $Wall->Avatar($uid);
$commentsarray = $Wall->Comments($msg_id);
?>
Я попробовал этот код тоже, но он также показывает многократно превышающую ту же должность:
$qfu = "SELECT * FROM my_friends WHERE (user_id = '$user_id' OR friend_id = '$user_id') AND status = '1'";
$fu = mysql_query($qfu) or die(mysql_error());
$rowfu = mysql_num_rows($fu);
while ($rowf = mysql_fetch_array($fu)) {
if ($user_id == $rowf['user_id']) {
$fid = $rowf['friend_id'];
} else {
$fid = $rowf['user_id'];
}
$querymsgs = "SELECT * FROM messages M, tbluser U WHERE U.id='$user_id' and M.uid_fk=U.id and (M.privacy='1' or M.privacy='2') order by M.msg_id desc ";
$qmsgs = mysql_query($querymsgs) or die(mysql_error());
$row_msgs = mysql_num_rows($qmsgs);
$msgs = mysql_fetch_array($qmsgs);
$msg_id = $msgs['msg_id'];
$orimessage = $msgs['message'];
$message = tolink(htmlentities($msgs['message']));
$time = $msgs['created'];
$privacy = $msgs['privacy'];
if ($privacy == '0') {
$privacy = 'Only Me';
} elseif ($privacy == '2') {
$privacy = 'Public';
} else {
$privacy = 'Friends';
}
$uid = $msgs['uid_fk'];
$fullname = $msgs['fname'] . " " . $msgs['lname'];
$face = $Wall->Avatar($uid);
$commentsarray = $Wall->Comments($msg_id);
?>
Пожалуйста, помогите мне избавиться от этой проблемы.
Что именно не работает? –
попробуйте проверить условие в вашем запросе sql, есть что-то подозрительное (user_id = '$ user_id' ИЛИ friend_id = '$ user_id'), не должны ли вы просто проверять друзей, принадлежащих пользователю? Я предполагаю, что если A является другом с B, то B является другом с A, и поэтому владелец сообщения попадает в ваш запрос. – legrandviking
проблема в том, что сообщение пользователя показано несколько раз. например, если у пользователя А есть 2 друга, то его пост будет показан 2 раза на его стене, Шимон Рахленко – user2635872