Mysql присоединиться к теме и ее ответы - PullRequest
1 голос
/ 07 сентября 2010

Хорошо, я хочу создать простой форум для моего сайта.Итак, начнем.

Я предполагаю, что таблица потоков будет выглядеть так:

t_id, thread_name, who_created, when_created

И таблица ответов будет выглядеть так:

r_id, t_id, who_wrote, what_wrote, when_wrote

И когда кто-то хочет просмотреть ветку с ответами, он нажимает кнопку, которая перемещает его на index.php?t_id=1 или что-то в этом роде.t_id означает табличное значение потоков t_id.Какой запрос на присоединение я должен написать для показа темы и ее ответов?

mysql_query('SELECT *
             FROM threads AS t
             INNER JOIN replies AS r
             ON t.t_id = r.t_id
             WHERE t.t_id = '.mysql_escape_strings($_GET['t_id']));

Это правильно?Тогда как мне вытащить все эти данные?С mysql_fetch_array?Тогда как?Какие-либо предложения?Может лучше написать 2 запроса вместо JOIN?Спасибо.

1 Ответ

3 голосов
/ 07 сентября 2010

Не используйте объединение в этом случае, так как оно не дает никаких преимуществ и вместо этого замедляет запросы.Скорее выполните два отдельных запроса:

mysql_query('SELECT *
         FROM threads AS t
         WHERE t.t_id = '.mysql_escape_strings($_GET['t_id']));

И:

mysql_query('SELECT *
         FROM replies AS r
         WHERE r.t_id = '.mysql_escape_strings($_GET['t_id']));

Это будет намного быстрее.

...