нужно перемотреть организацию выборки элементов дизайна с базы ...

Сенсей

Новичок
нужно перемотреть организацию выборки элементов дизайна с базы ...

Буду краток :)

Есть некий элемент дизайна .... будем называть его блоком ...

Функция его такова :

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'];
            }
          // и т.д
            
     }
}
А в местах где раньше было 4 вызова одной функции заменить соответственно ....

block("left"); на echo $left_block ;
block("right"); на echo $right_block ;
и т.д

В итоге будем иметь на выходе те же данные - но уже все это при помощи 1-го запроса к базе ....

Надеюсь кто то нибудь понял мои бредни :)
Вобщем хочется что бы посоветовали как люди делают .. как правильно и как лучше сделать ....

Свою идею на переменных типа $left_block я привел - но я сомневаюсь что это не извращение .... может лучше тогда уж в дизайне писать что то типа {left_block} а потом в функции регулярками ..... но тогда как мне кажется скорость упадет .... и то что я заменил 4 запроса на 1 - от этого уже выигрыша не будет ...

Вобщем .... если кто понял , пишите , не стесняйтесь :)
 

alpine

Новичок
>> но я сомневаюсь что это не извращение
оно самое
тебе наверное нужно познакомится с шаблонами:

http://detail.phpclub.net/article/2002-11-25
 

Сенсей

Новичок
Не хотелось бы нагромождать скрипт тяжелыми щаблонизаторами .... Что я выигрываю ? - 4 запроса к базе + нагрузка которую прибавит шаблонизатор ?

Я вроде как хотел оптимизировать скрипт .... а не напичкать его ненужным ...

Может еще есть что ?

-------
E меня дизайн формируется функциями которые вынесены в отдельный покдлючаемый файл ... В этом смысле НЕудобства вроде не испытываю ....
 

alpine

Новичок
Сенсей
>> Я вроде как хотел оптимизировать скрипт .... а не напичкать его ненужным ...
это ты сейчас так думаешь, а потом ты поймешь, что когда быстродействие не критично, то важнее удобство!
 
Сверху