Новости и разделы .... запросы к базе зависят от количества новостей :(

Сенсей

Новичок
Новости и разделы .... запросы к базе зависят от количества новостей :(

Ни как не рвублюсь ... это я по тупому делаю .. так должно быть .... или можно так .. но лучше по другому ? Вобщем проблема вот в чем ... Есть Новости и есть Разделы , соответственно есть 2 таблицы ... _NEWS и _TOPICS

в таблице _NEWS есть поле topic , по которому я определяю в таблице _TOPICS к какому разделу принадлежит новость .. и беру с таблицы _TOPICS название раздела where topicid = $topic

Получается такое дело .. что для выборки новостей достаточно одного запроса ... Но если например у нас выбрано 10 новостей ... то в цикле идут дополнительно 10 запросов к таблице _TOPICS where topicid = $topic

Выходит что если я беру 5 новостей - идет 6 запросов к базе ....а если 20 - то уже 21 ... можно ли как то это оптимизировать ?


Вот код которым я делаю .... я убрал лишнее ...


PHP:
$result = mysql_query("SELECT sid, title, time, text, topic FROM news", $db);
    while ($row = mysql_fetch_array($result,$db)) {
	$s_sid = $row['sid'];
	$title = $row['title'];
	$time = $row['time'];
	$hometext = $row['text'];
	$topic = $row['topic'];

$result2 = sql_query("SELECT topicid, topicname FROM topics where topicid='$topic'", $db);
list($topicid, $topicname, $topicimage, $topictext) = mysql_fetch_row($result2, $db);

echo "новости и имя раздела $topicname";
}

Я так думал .... можно вне цикла выбрать одним запросом в массив все разделы которые имеются в _TOPICS

и потом уже с массива брать topicname где topicid совпадает с $topic


Но я не знаю как это сделать .... может это все бред ?
 

JVN

Guest
Тебе нужно выполнить соединение таблиц:

SELECT
topics.topicname, news.title
-- далее поля, которые тебе еще нужны
FROM
topics, news
WHERE
news.topic = topics.topicid
 
Сверху