создание переменной PHP для MySQL - PullRequest
0 голосов
/ 09 декабря 2011

У нас есть список дат, взятый из базы данных MySQL.Эта часть довольно проста и работает просто отлично, выполните запрос $, пошагово просматривайте массив, найдите те, которые соответствуют условиям, отобразите некоторый HTML-код и саму дату.

Проблема, которую мы надеемся решить,что этот список появляется в трех отдельных местах на веб-странице.Каждый раз, когда он появляется, запускается php-код, выполняется запрос к базе данных и результаты echo'd.

Меня интересует, есть ли способ создать переменную php в начале, а затем просто отобразить эту переменнуюво всех трех местах, вместо того, чтобы трижды запускать код.

Я испробовал идеи noob о простом использовании:

$date = ( ...all the php query / echo code... );
and
$date = { ...all the php query / echo code... };

, а также перестановок в нем.Но безрезультатно.

Ответы [ 2 ]

1 голос
/ 09 декабря 2011

Да, вы можете сохранить его в переменной вверху вашего php-файла:

// query ...
// but don't echo, store in a string
$date = 'this contains what is supposed to be echoed later on.';

Затем позже:

echo $date;

И снова в другом месте:

echo $date;

По поводу вашего комментария:

$date = ''; // this will hold all dates
while($tourtime = fetch_result_from_db(...)){ // 'the loop', whatever yours look like
    // instead of echoing, append to the string $date
    $date .= "<span class=\"dates\">". date ("j F Y", $tourtime) . "</span><br />";
}

.= добавляет (объединяет) строки.


Бонус: если у вас много данных, может быть лучше с w.r.t. эффективность, чтобы сначала собрать все строки, а затем объединить их в строку за одну операцию. Вы можете сделать это так:

$rows = array();
while($tourtime = fetch_result_from_db(...)){
    $rows[] = "<span class=\"dates\">". date ("j F Y", $tourtime) . "</span><br />";
}
$date = implode($rows);
0 голосов
/ 09 декабря 2011

Да, вы можете дать значения переменным гораздо больше, прежде чем использовать его.Не стесняйтесь делать это.

Если 3 точки имеют разные параметры, вы должны создать переменную как шаблонный стиль.

 // beginning of the code
 $statementTemplate = "select * from x where a=8 and b<9 order by #";

 //... some code...

 // point 1
 $statement = str_replace("#","name",$statementTemplate);
 // perform statement

 //... some code...

 // point 2
 $statement = str_replace("#","name desc",$statementTemplate);
 // perform statement

 //... some code...

 // point 3
 $statement = str_replace("#","lastmodify",$statementTemplate);
 // perform statement

Не бойтесь, программы могут делать все!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...