SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 07.05.2009 10:54:17

maximus
Участник
Зарегистрирован: 07.05.2009
Сообщений: 2

Помогите с запросом к бд

Немного "рисую" на PHP
Вот попал в засаду, по выводу из таблицы с комментариями, коментариев с дополнительным запросм в таблицу с пользователями. Т.е если совпадение ника коментатора с ником пользователя брался юзерлевел из таблицы с пользователями. Но суть в том что в таблице с пользователями может и не быть такого ника и выдает нулл.

Вот код просто с выдачей комментов
$result = SQL_Query("SELECT *
    FROM ".$bd_comments."
    where comment_topic='".$topic."' AND comment_post_id=".$id."
    ORDER BY comment_id DESC LIMIT 0,10");

А вот то, что пытаюсь да не выходит
$result = SQL_Query("SELECT comm.*, u.user_level
    FROM ".$bd_comments." comm, users u
    where comment_topic='".$topic."' AND comment_post_id=".$id." AND comment_user_name=u.login
    ORDER BY comment_id DESC LIMIT 0,10");

И что странно все получается если первый(т.е последний) комментарий был дан зарегеным пользователем
А вот если гостем то ни одного коммента не выдает

В чем может быть дело ... подскажите [желательно малой кровью]

MySQL 5.0.51a

Неактивен

 

#2 07.05.2009 13:58:34

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Помогите с запросом к бд

Насколько я понял, проблема заключается в том, что не у всех комментариев есть создавший
их пользователь. Это не очень хорошо wink

SELECT comm.*, u.user_level
FROM ".$bd_comments." comm LEFT JOIN users u ON  comment_user_name=u.login
where comment_topic='".$topic."' AND comment_post_id=".$id."
ORDER BY comment_id DESC LIMIT 0,10

Вот так будут выдаваться NULL только в колонке пользователя, если его нету. Но структуру
стоит продумать еще раз (ведь можно «анонимно» написать комментарий с именем пользователя,
например, администратора — и тогда этот комментарий по текущей технологии будет считаться
комментарием администратора... плохо sad). Лучше хранить id пользователей.

Неактивен

 

#3 07.05.2009 23:46:55

maximus
Участник
Зарегистрирован: 07.05.2009
Сообщений: 2

Re: Помогите с запросом к бд

Помогло, спасибо

«анонимно» написать комментарий можно, но в он будет добавлен как от простого юзера.
В таблице с комментариями есть поле user_regged и дополнительно проверяется зарегистрирован пользователь или нет.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson