Так не робит :
$forum_post = mysql_query("SELECT `id`,`id_theme`,`author`,`text`,`date`
FROM `forum_post`
WHERE `id_theme`='".mysql_real_escape_string($_GET['id_theme'])."' ORDER BY id");
$forum_post_array = mysql_fetch_assoc($forum_post) ;
$forum_user_post = mysql_query("SELECT `id`,`avatars`
FROM `user`
WHERE `login`='".mysql_real_escape_string($forum_post_array['author'])."'");
$forum_user_post_assoc = mysql_fetch_assoc($forum_user_post);
if (mysql_num_rows($forum_post) > 0) {
$table = "";
while($forum_post_array = mysql_fetch_assoc($forum_post)) {
$table .= "<div class='forum_comment_container'>\n" ;
$table .= "<div class='forum_comment_avatar'>\n" ;
$table .= "<img class='forum_avatar' src='".$forum_user_post_assoc['avatars']."' />\n" ;
$table .= "<p class='forum_avatar_username'><a title='Профиль пользователя' href='profile.php?name=".$forum_post_array['author']."'>".$forum_post_array['author']."</a><br />(<font color='#003300'>№ ".$forum_user_post_assoc['id']."</font>)</p>\n" ;
$table .= "</div>\n" ;
$table .= "<div class='forum_comment_text'>\n" ;
$table .= "<p class='forum_comment_text_text'>".bb($forum_post_array['text'])."\n" ;
$table .= "<div class='div_forum_comment'></div><p class='forum_comment_text_p'>Добавлено: ".$forum_post_array["date"]."</p>\n" ;
$table .= "</p>\n";
$table .= "</div>\n" ;
$table .= "</div>\n" ;
}
echo $table;
}
else {
echo "<p class='conttable_t'>На данный момент в этой теме нет ни одного ответа.</p>";
}
А так робит :
$forum_post = mysql_query("SELECT `id`,`id_theme`,`author`,`text`,`date`
FROM `forum_post`
WHERE `id_theme`='".mysql_real_escape_string($_GET['id_theme'])."' ORDER BY id");
if (mysql_num_rows($forum_post) > 0) {
$table = "";
while($forum_post_array = mysql_fetch_assoc($forum_post)) {
$forum_user_post = mysql_query("SELECT `id`,`avatars`
FROM `user`
WHERE `login`='".mysql_real_escape_string($forum_post_array['author'])."'");
$forum_user_post_assoc = mysql_fetch_assoc($forum_user_post);
$table .= "<div class='forum_comment_container'>\n" ;
$table .= "<div class='forum_comment_avatar'>\n" ;
$table .= "<img class='forum_avatar' src='".$forum_user_post_assoc['avatars']."' />\n" ;
$table .= "<p class='forum_avatar_username'><a title='Профиль пользователя' href='profile.php?name=".$forum_post_array['author']."'>".$forum_post_array['author']."</a><br />(<font color='#003300'>№ ".$forum_user_post_assoc['id']."</font>)</p>\n" ;
$table .= "</div>\n" ;
$table .= "<div class='forum_comment_text'>\n" ;
$table .= "<p class='forum_comment_text_text'>".bb($forum_post_array['text'])."\n" ;
$table .= "<div class='div_forum_comment'></div><p class='forum_comment_text_p'>Добавлено: ".$forum_post_array["date"]."</p>\n" ;
$table .= "</p>\n";
$table .= "</div>\n" ;
$table .= "</div>\n" ;
}
echo $table;
}
else {
echo "<p class='conttable_t'>На данный момент в этой теме нет ни одного ответа.</p>";
}
Кто знает как быть в этой ситуации а то запрос в цикле как-то напряжно )
Спустя 19 минут, 55 секунд (7.04.2011 - 17:09) Mirexzpalich написал(а):
А нельзя сразу одним запросом все выдрать? Тогда будет всего один цикл.
P.S. ВСЕ html данные храни в отдельных файлах - шаблонах. и просто подключай их при необходимости. Код станет куда нагляднее....
P.S. ВСЕ html данные храни в отдельных файлах - шаблонах. и просто подключай их при необходимости. Код станет куда нагляднее....
Спустя 5 минут, 9 секунд (7.04.2011 - 17:14) Domin написал(а):
Mirexzpalich ты имеешь введу двойной запрос ?
адним запросом не покатит , мне надо к теме вывести все комментарии + коменты в одной таблице , а данные пользователя в другой !
адним запросом не покатит , мне надо к теме вывести все комментарии + коменты в одной таблице , а данные пользователя в другой !
Спустя 3 минуты, 19 секунд (7.04.2011 - 17:17) Mirexzpalich написал(а):
Погодь. Тебе надо:
1) Выдернуть коменты к теме
2) Инфу о тех кто оставил комент
Так?
1) Выдернуть коменты к теме
2) Инфу о тех кто оставил комент
Так?
Спустя 1 минута, 57 секунд (7.04.2011 - 17:19) Domin написал(а):
Да ты правильно понял !
Спустя 51 минута, 2 секунды (7.04.2011 - 18:10) Mirexzpalich написал(а):
тогда все делается одним запросом
Спустя 39 минут, 20 секунд (7.04.2011 - 18:49) Domin написал(а):
Чёт я незнаю как там сделать одним запросом (((
Спустя 10 минут, 35 секунд (7.04.2011 - 19:00) inpost написал(а):
$forum_post = mysql_query("SELECT a.`id`, a.`id_theme`, a.`author`, a.`text`, a.`date`, b.`id` AS `user_id`, b.`avatars`
FROM `forum_post`a
LEFT JOIN `user` b ON b.`login` = a.`author`
WHERE a.`id_theme`='".mysql_real_escape_string($_GET['id_theme'])."'
GROUP BY a.`author`
ORDER BY a.`id`
");
Хотя: На форуме: 1 год, 2 месяца, 20 дней - пора было бы изучить такие простые запросы :)
Спустя 8 минут, 47 секунд (7.04.2011 - 19:09) Mirexzpalich написал(а):
Это я так понимаю запрос для коментов
А этот для их авторов
Тогда выполни этот код:
$forum_post = mysql_query("SELECT `id`,`id_theme`,`author`,`text`,`date`
FROM `forum_post`
WHERE `id_theme`='".mysql_real_escape_string($_GET['id_theme'])."' ORDER BY id");
А этот для их авторов
$forum_user_post = mysql_query("SELECT `id`,`avatars`
FROM `user`
WHERE `login`='".mysql_real_escape_string($forum_post_array['author'])."'");
Тогда выполни этот код:
$query = mysql_query("SELECT
`user`.`id` as `user_id`,
`user`.`avatars` as `avatar`,
`forum_post`.`id` as `message_id`,
`forum_post`.`id_theme` as `message_theme`,
`forum_post`.`author` as `message_author`,
`forum_post`.`text` as `message_text`,
`forum_post`.`date` as `message_date`
FROM `user`, `forum_post`
WHERE
`id_theme`='".mysql_real_escape_string($_GET['id_theme'])."' AND
`forum_post`.`author`= `user`.`login`
ORDER BY `mail`.`id`");
echo '<pre>';
while($row = mysql_fetch_assoc($query))
print_r($row);
echo '</pre>';
Спустя 17 минут (7.04.2011 - 19:26) Domin написал(а):
спс, буду юзать!
Спустя 27 минут, 47 секунд (7.04.2011 - 19:54) Domin написал(а):
$query = mysql_query("SELECT
`user`.`id` as `user_id`,
`user`.`avatars` as `avatar`,
`forum_post`.`id` as `message_id`,
`forum_post`.`id_theme` as `message_theme`,
`forum_post`.`author` as `message_author`,
`forum_post`.`text` as `message_text`,
`forum_post`.`date` as `message_date`
FROM `user`, `forum_post`
WHERE
`id_theme`='".mysql_real_escape_string($_GET['id_theme'])."' AND
`forum_post`.`author`= `user`.`login`
ORDER BY `mail`.`id`");
echo '<pre>';
while($row = mysql_fetch_assoc($query))
print_r($row);
echo '</pre>';
шото мне тут ваще ничего непонятно, откуда взялось `user`.`login`
и тому подобное (( первый раз сталкиваюсь с такими запросами ((
Спустя 12 минут, 48 секунд (7.04.2011 - 20:06) inpost написал(а):
Domin
А мой запрос тебе не подошел... да?!
А мой запрос тебе не подошел... да?!
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 9 минут (7.04.2011 - 20:15) Domin написал(а):
ошибка вылетает
а именно тут
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL
а именно тут
while($row = mysql_fetch_assoc($query))
Спустя 3 минуты, 21 секунда (7.04.2011 - 20:19) Domin написал(а):
inpost
пробывал вывелся один коммент без инфы всякой про пользователя ((
пробывал вывелся один коммент без инфы всякой про пользователя ((
Спустя 4 минуты, 39 секунд (7.04.2011 - 20:23) inpost написал(а):
Domin
Так ты достаёшь про пользователя только Аватар.
Так ты достаёшь про пользователя только Аватар.
Спустя 2 минуты, 9 секунд (7.04.2011 - 20:25) inpost написал(а):
Domin
Покажи структуру БД, и что тебе достать надо!
Покажи структуру БД, и что тебе достать надо!
Спустя 10 минут, 37 секунд (7.04.2011 - 20:36) Domin написал(а):
структура:
таблица user:
столбци таблици:
id | avatar
таблица forum_post:
столбци таблици:
id | id_theme | title | author | text | date |
Все комментарии к теме вытаскиваются по значению id_theme.
что нужно сделать:
Выташить все коментарии к id_theme и по значению столбца author в таблице forum_post выташить из таблици user значения id | avatar и вывести в цикле.
таблица user:
столбци таблици:
id | avatar
таблица forum_post:
столбци таблици:
id | id_theme | title | author | text | date |
Все комментарии к теме вытаскиваются по значению id_theme.
что нужно сделать:
Выташить все коментарии к id_theme и по значению столбца author в таблице forum_post выташить из таблици user значения id | avatar и вывести в цикле.
Спустя 11 минут, 47 секунд (7.04.2011 - 20:48) inpost написал(а):
Domin
GROUP BY a.`author` убери из запроса вообще, моего! Оно лишнее
Думаю теперь всё будет работать отлично. Если нет, то группировку сделай по a.`id`, но не думаю, что это воообще имеет роль хоть какую-то
GROUP BY a.`author` убери из запроса вообще, моего! Оно лишнее
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 14 минут, 58 секунд (7.04.2011 - 21:03) Domin написал(а):
inpost
а как я тогда выташю инфу о юзере ?
а как я тогда выташю инфу о юзере ?
Спустя 2 минуты, 4 секунды (7.04.2011 - 21:05) inpost написал(а):
Domin
Группировку я сказал убери, а не присоединенную таблицу через LEFT JOIN...
Группировку я сказал убери, а не присоединенную таблицу через LEFT JOIN...
Спустя 12 минут, 14 секунд (7.04.2011 - 21:17) Domin написал(а):
До одного места
вот как сделал :
и ошибка всёравно
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL
вот как сделал :
$forum_post = mysql_query("SELECT `id`, `id_theme`, `author`, `text`, `date`, b.`id` AS `user_id`, b.`avatars`
FROM `forum_post`a
LEFT JOIN `user`b ON b.`login` = `author`
WHERE `id_theme`='".mysql_real_escape_string($_GET['id_theme'])."'
GROUP BY `author`
ORDER BY `id`
");
и ошибка всёравно
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL
Спустя 12 минут, 43 секунды (7.04.2011 - 21:30) Domin написал(а):
Кроче спс всем за помошь, пусть лучьше будет как было.
Может со времинем раздуплюсь и переделаю.
толку всёравно ноль токо время тратить, скоко тут писал некогда тут проблема не ришалась, через день сам её решал.
Может со времинем раздуплюсь и переделаю.
толку всёравно ноль токо время тратить, скоко тут писал некогда тут проблема не ришалась, через день сам её решал.
Спустя 39 минут, 55 секунд (7.04.2011 - 22:10) Mirexzpalich написал(а):
Сделай вывод ошибки и покажи что выдает.
`user`.`id` означает - в таблице user поле id
echo mysql_error($forum_post);
или
echo mysql_error($query);
`user`.`id` означает - в таблице user поле id
Спустя 12 минут, 13 секунд (7.04.2011 - 22:22) Domin написал(а):
В запросе ошибку показывает такую
Unknown column 'mail.id' in 'order clause'
Unknown column 'mail.id' in 'order clause'
Спустя 3 минуты, 17 секунд (7.04.2011 - 22:25) Mirexzpalich написал(а):
Ахаха... точно =)
А так робит?
А так робит?
$query = mysql_query("SELECT
`user`.`id` as `user_id`,
`user`.`avatars` as `avatar`,
`forum_post`.`id` as `message_id`,
`forum_post`.`id_theme` as `message_theme`,
`forum_post`.`author` as `message_author`,
`forum_post`.`text` as `message_text`,
`forum_post`.`date` as `message_date`
FROM `user`, `forum_post`
WHERE
`id_theme`='".mysql_real_escape_string($_GET['id_theme'])."' AND
`forum_post`.`author`= `user`.`login`
ORDER BY `forum_post`.`id`");
echo '<pre>';
while($row = mysql_fetch_assoc($query))
print_r($row);
echo '</pre>';
Спустя 6 минут, 59 секунд (7.04.2011 - 22:32) Domin написал(а):
Вывело :
Array
(
[user_id] => 1
[avatar] => avatars/no-avatars.jpg
[message_id] => 97
[message_theme] => 40
[message_author] => admin
[message_text] => weweew
[message_date] => Четверг 07 Апреля 2011 года в 23 час. 36 мин. 27 сек.
)
Спустя 5 минут, 19 секунд (7.04.2011 - 22:38) Mirexzpalich написал(а):
Работает =)
Спустя 8 минут, 8 секунд (7.04.2011 - 22:46) Domin написал(а):
Блин Mirexzpalich спасибо тебе огромнейшое, расдуплил меня хоть с такими запросами а то так БД напрягает ппц.
Спустя 1 минута, 46 секунд (7.04.2011 - 22:47) Mirexzpalich написал(а):
Да не зна что.... Но в дальнейшем не советаю делать такие запросы... Юзай LEFT JOIN и RIGHT JOIN... Почитай... там ни чего сложного...
А то что я тут написал - так чтоб тебе нагляднее было
А то что я тут написал - так чтоб тебе нагляднее было
Спустя 1 минута, 20 секунд (7.04.2011 - 22:49) Domin написал(а):
а что в твоём варианте не так ? какие недостатки ?
Спустя 2 минуты, 57 секунд (7.04.2011 - 22:52) Mirexzpalich написал(а):
Размер запроса =)... Ну... наверно еще и индексы работать не будут, а может будут.. не знаю в тонкости не вдавался... Да и эстэтически через JOINы красивее будет.
Спустя 50 минут, 30 секунд (7.04.2011 - 23:42) Domin написал(а):
Нашол описание, буду тестить =)
Спустя 18 минут, 56 секунд (8.04.2011 - 00:01) Domin написал(а):
Спасиб ребят реально помогли, замутил свой запросик всё робит ))
$query = mysql_query("SELECT a.`id`,a.`id_theme`,a.`author`,a.`text`,a.`date`,b.`id` as 'user_id',b.`avatars`
FROM `forum_post` a LEFT JOIN `user` b ON b.`login`= a.`author`
WHERE a.`id_theme`='".mysql_real_escape_string($_GET['id_theme'])."'
ORDER BY a.`id` LIMIT $start, $num") ;
Спустя 1 час, 24 минуты, 28 секунд (8.04.2011 - 01:26) inpost написал(а):
Domin
Вообще-то это был мой, в котором я сказал, чтобы ты просто убрал GROUP BY =)
Вообще-то это был мой, в котором я сказал, чтобы ты просто убрал GROUP BY =)
Спустя 5 часов, 54 минуты, 13 секунд (8.04.2011 - 07:20) Domin написал(а):
inpost дак сразу же непонял потом почитал что и как и раздуплился
)
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)