Сенсей
Новичок
нужно перемотреть организацию выборки элементов дизайна с базы ...
Буду краток
Есть некий элемент дизайна .... будем называть его блоком ...
Функция его такова :
Функция выводит данные по отношению к внешнему виду страницы : вверху - внизу-слева-справа
и вызывается соответственно 4 раза в разных местах одного файла скрипта ..
То есть имеем 4 вызова :
block("left");
block("center");
block("right");
block("down");
В чем суть .... Мне не нравится что одна функция делает 4 запроса к базе ...
То есть 4 вызова = 4 запроса ... Каждый запрос с разным параметром where ...
Я думаю сделать так - делать 1 запрос - и выбрать все записи с таблицы ... И уж потом сортировать по position и показывать где надо ....
Но !
Я не знаю как лучше это организовать ....
Например вместо четырех вызовов в разных местах
block("left");
block("center");
block("right");
block("down");
делать вначале скрипта один вызов block("");
А функцию переписать типа :
А в местах где раньше было 4 вызова одной функции заменить соответственно ....
block("left"); на echo $left_block ;
block("right"); на echo $right_block ;
и т.д
В итоге будем иметь на выходе те же данные - но уже все это при помощи 1-го запроса к базе ....
Надеюсь кто то нибудь понял мои бредни
Вобщем хочется что бы посоветовали как люди делают .. как правильно и как лучше сделать ....
Свою идею на переменных типа $left_block я привел - но я сомневаюсь что это не извращение .... может лучше тогда уж в дизайне писать что то типа {left_block} а потом в функции регулярками ..... но тогда как мне кажется скорость упадет .... и то что я заменил 4 запроса на 1 - от этого уже выигрыша не будет ...
Вобщем .... если кто понял , пишите , не стесняйтесь
Буду краток
Есть некий элемент дизайна .... будем называть его блоком ...
Функция его такова :
PHP:
block($where)
{
$result = mysql_query("select * from blocks where position='".$where."'", $connect);
while($row = sql_fetch_array($result))
{
echo $row['some_data'];
}
}
и вызывается соответственно 4 раза в разных местах одного файла скрипта ..
То есть имеем 4 вызова :
block("left");
block("center");
block("right");
block("down");
В чем суть .... Мне не нравится что одна функция делает 4 запроса к базе ...
То есть 4 вызова = 4 запроса ... Каждый запрос с разным параметром where ...
Я думаю сделать так - делать 1 запрос - и выбрать все записи с таблицы ... И уж потом сортировать по position и показывать где надо ....
Но !
Я не знаю как лучше это организовать ....
Например вместо четырех вызовов в разных местах
block("left");
block("center");
block("right");
block("down");
делать вначале скрипта один вызов block("");
А функцию переписать типа :
PHP:
block($where)
{
$result = mysql_query("select * from blocks, $connect);
while($row = sql_fetch_array($result))
{
if ($row['position'] == "left")
{
$left_block .= $row['some_data'];
}
if ($row['position'] == "right")
{
$right_block .= $row['some_data'];
}
// и т.д
}
}
block("left"); на echo $left_block ;
block("right"); на echo $right_block ;
и т.д
В итоге будем иметь на выходе те же данные - но уже все это при помощи 1-го запроса к базе ....
Надеюсь кто то нибудь понял мои бредни
Вобщем хочется что бы посоветовали как люди делают .. как правильно и как лучше сделать ....
Свою идею на переменных типа $left_block я привел - но я сомневаюсь что это не извращение .... может лучше тогда уж в дизайне писать что то типа {left_block} а потом в функции регулярками ..... но тогда как мне кажется скорость упадет .... и то что я заменил 4 запроса на 1 - от этого уже выигрыша не будет ...
Вобщем .... если кто понял , пишите , не стесняйтесь