|
|
|
| Таблица events
id_event (ключевое)
name_event и т.д.
Таблица reviews (это текстовые отчеты о мероприятиях из events)
id_event (берется из events)
Таблица fotoreviews (это фотоотчеты о мероприятиях из events)
id_event (берется из events)
Мне надо вывести в общем списке мероприятия, на которые есть отчеты(либо текстовые, либо фото, либо то и другое).
Т.е. название мероприятие--
если есть текстовый, то будет надпись--читать текстовый отчет--ссылка
если есть фотоотчет, то будет надпись--смотретьфотоотчет--ссылка
Мне подсказали, что такой запрос надо делать с помощью оператора join, но я так и не разобрался в нем.
Т.е. есть ли на событие текстовый или фотоотчет, или и то и другое--надо вывести это событие в списке.
У меня такой сейчас запрос-
$result91999= mysql_query("SELECT *,DATE_FORMAT(date_event,'%d-%m-%Y') AS date_event
FROM events,fotoreviews,clubs
where events.id_event=fotoreviews.id_event and clubs.id_club=events.id_club order by date_event");
|
В нем выводятся все события, у которых есть фотоотчет, clubs- это таблица клубов. | |
|
|
|
|
|
|
|
для: segafrompiter
(24.07.2006 в 19:55)
| | если что-то не досказал-скажите... | |
|
|
|
|
|
|
|
для: segafrompiter
(24.07.2006 в 19:55)
| | Попробуйте заменить строку
FROM events,fotoreviews,clubs
|
на
FROM events LEFT JOIN fotoreviews LEFT JOIN clubs
|
| |
|
|
|
|
|
|
|
для: cheops
(25.07.2006 в 10:02)
| | Выдал ошибку
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in v:\home\test2.ru\www\index.php on line 262
|
еще раз скажу, что в строчке не хватает таблицы reviews ,
из 2-х таблиц reviews и fotoreviews надо выбрать все записи, если у 2-х записей разных таблиц совпадает id_event , то надо выводить один раз только такую запись. | |
|
|
|
|
|
|
|
для: segafrompiter
(25.07.2006 в 10:11)
| | Обязательно ставьте проверку после выполнения фукнции mysql_query()
<?php
$tbl = mysql_query($query);
if(!$tbl) exit("Ошибка - ".mysql_error())
?>
|
Попробуйте для начала такой запрос
SELECT *,DATE_FORMAT(date_event,'%d-%m-%Y') AS date_event
FROM events,fotoreviews
WHERE events.id_event=fotoreviews.id_event
ORDER BY date_event
|
PS Кстати, сортировка по date_event будет не правильной, так как даты сортируются как строки, а у вас сначала идёт день, потом месяц, потом год. | |
|
|
|
|
|
|
|
для: cheops
(25.07.2006 в 10:16)
| | у меня работает запрос
$result91999= mysql_query("SELECT *,DATE_FORMAT(date_event,'%d-%m-%Y') AS date_event
FROM events,fotoreviews,clubs
where events.id_event=fotoreviews.id_event and clubs.id_club=events.id_club order by date_event");
|
!!!
в него надо добавить запрос из таблицы REVIEWS , и чтобы одинаковые записи по id_event в reviews и fotoreviews не повторялись. | |
|
|
|
|
|
|
|
для: segafrompiter
(25.07.2006 в 10:28)
| | Тогда добавьте группировку (GROUP BY) по полям fotoreviews.id_event и clubs.id_club. | |
|
|
|