[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с чтением сообщений
Yoda
Скрипт не читает сообщений, хотя они в бд есть. Не пойму почему... Вот скрипт чтения
if ($myrow['login'] == $login2) {

echo "Личные сообщения:<br>";
$tmp = mysql_query("SELECT * FROM messages WHERE poluchatel='$login' ORDER BY id DESC");
$messages = mysql_fetch_array($tmp);
if (!empty($messages['id'])) {
do
{
$author = $messages['author'];
$result4 = mysql_query("SELECT avatar,id FROM users WHERE login='$author'");
$myrow4 = mysql_fetch_array($result4);
if (!empty($myrow4['avatar'])) {
$avatar = $myrow4['avatar'];
}
else {$avatar = "avatars/net-avatara.jpg";}
printf("
<table>
<tr>

<td><a href='page.php?id=%s'><img alt='Aватар' src='%s'></a></td>

<td>Автор: <a href='page.php?id=%s'>%s</a><br>
Дата: %s<br>
Сообщение:<br>
%s<br>
<a href='drop_post.php?id=%s'>Удалить</a>


</td>
</tr>
</table><br>

"
,$myrow4['id'],$avatar,$myrow4['id'],$author,$messages['date'],$messages['text'],$messages['id']);

}
while($messages = mysql_fetch_array($tmp));
}
else
{
echo "Сообщений нет";
}
}




Спустя 20 минут, 56 секунд (9.01.2012 - 21:18) GET написал(а):
в конце запросов поставьте or die(mysql_error());

т.е. здесь

$tmp = mysql_query("SELECT * FROM    messages WHERE poluchatel='$login' ORDER BY id DESC")or die(mysql_error());


и здесь

$result4 = mysql_query("SELECT avatar,id    FROM users WHERE login='$author'") or die(mysql_error());


и скажите какая ошибка появилась :)

Спустя 11 минут, 28 секунд (9.01.2012 - 21:29) Pulse написал(а):
Может в этой строчке должен быть $login2 ?
$tmp = mysql_query("SELECT * FROM    messages WHERE poluchatel='$login2' ORDER BY id DESC");

Спустя 40 минут, 59 секунд (9.01.2012 - 22:10) Yoda написал(а):
Цитата (Pulse @ 9.01.2012 - 18:29)
Может в этой строчке должен быть $login2 ?
$tmp = mysql_query("SELECT * FROM    messages WHERE poluchatel='$login2' ORDER BY id DESC");


Да, спасибо. Это помогло

Спустя 2 минуты, 38 секунд (9.01.2012 - 22:13) Yoda написал(а):
А как проверить, что имеется непрочитанное сообщение?

Спустя 35 минут, 52 секунды (9.01.2012 - 22:49) Pulse написал(а):
Цитата
А как проверить, что имеется непрочитанное сообщение?

Для этого в таблице должно например быть поле `readed` со значениями:
0 - не прочитано
1 - прочитано
А потом просто выбираете из таблицы все сообщения, с условием проверки этого поля:
$tmp = mysql_query("SELECT * FROM    messages WHERE poluchatel='$login2' AND `readed` = 0 ORDER BY id DESC");

Спустя 14 минут, 58 секунд (9.01.2012 - 23:04) Yoda написал(а):
А вот когда пишут "У вас есть 1 новое сообщение", как проверить бд?

Спустя 10 минут, 31 секунда (9.01.2012 - 23:14) Pulse написал(а):
Цитата
А вот когда пишут "У вас есть 1 новое сообщение", как проверить бд?

Примерно так:
$tmp = mysql_query("SELECT COUNT(*) AS `new_messages` FROM    messages WHERE poluchatel='$login2' AND `readed` = 0 ORDER BY id DESC");
$newMessages = mysql_result($tmp, 0, 'new_messages');
echo "У вас есть {$newMessages} новых сообщения";


_____________
Идеальной защиты не существует...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.