Сенсей
Новичок
Новости и разделы .... запросы к базе зависят от количества новостей
Ни как не рвублюсь ... это я по тупому делаю .. так должно быть .... или можно так .. но лучше по другому ? Вобщем проблема вот в чем ... Есть Новости и есть Разделы , соответственно есть 2 таблицы ... _NEWS и _TOPICS
в таблице _NEWS есть поле topic , по которому я определяю в таблице _TOPICS к какому разделу принадлежит новость .. и беру с таблицы _TOPICS название раздела where topicid = $topic
Получается такое дело .. что для выборки новостей достаточно одного запроса ... Но если например у нас выбрано 10 новостей ... то в цикле идут дополнительно 10 запросов к таблице _TOPICS where topicid = $topic
Выходит что если я беру 5 новостей - идет 6 запросов к базе ....а если 20 - то уже 21 ... можно ли как то это оптимизировать ?
Вот код которым я делаю .... я убрал лишнее ...
Я так думал .... можно вне цикла выбрать одним запросом в массив все разделы которые имеются в _TOPICS
и потом уже с массива брать topicname где topicid совпадает с $topic
Но я не знаю как это сделать .... может это все бред ?
Ни как не рвублюсь ... это я по тупому делаю .. так должно быть .... или можно так .. но лучше по другому ? Вобщем проблема вот в чем ... Есть Новости и есть Разделы , соответственно есть 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
Но я не знаю как это сделать .... может это все бред ?