|
|
|
| Всем привет) Помогите с проблемой пжл..
Есть файл comments.tpl. Его содержание:
{num_comm}) Дата: {date}<br>
<a href="javascript:void(0)" onclick="answer('{name},'#add_comm')">{name}</a><br>
Сообщение: {message}
<hr>
И есть файл index.php в котором:
...
public function ShowComm($comm_tpl, $num, $id_article)
{
$this->selComm = mysql_query("SELECT * FROM `comm` WHERE `id_article`=".intval($id_article)." ORDER BY `id` ASC LIMIT ".intval($num));
$num_comm = 1;
$comm_tpl = file_get_contents('tpl/comm.tpl');
....
|
Помогите пожалуйста сделать вывод из бд всех записей(в данном случае комментариев) согласно "шаблону". | |
|
|
|
|
|
|
|
для: (Sandr)
(06.06.2011 в 17:31)
| | А структура таблицы comm какая? | |
|
|
|
|
|
|
|
для: cheops
(06.06.2011 в 17:49)
| | Упс.. забыл написать))
`id` int(15) NOT NULL auto_increment,
`id_article` int(15) NOT NULL,
`date` int(25) NOT NULL,
`name` varchar(255) NOT NULL,
`msg` varchar(255) NOT NULL | |
|
|
|
|
|
|
|
для: (Sandr)
(06.06.2011 в 17:31)
| | Можно начать отталкиваться от следующего скрипта
<?php
public function ShowComm($comm_tpl, $num, $id_article)
{
$query = "SELECT * FROM `comm`
WHERE `id_article`=".intval($id_article)."
ORDER BY `id` ASC
LIMIT ".intval($num)
$this->selComm = mysql_query($query);
if(!$this->selComm) exit("Ошибка выполнения SQL-запроса ".$query);
$num_comm = 1;
$comm_tpl = file_get_contents('tpl/comm.tpl');
$search = array("{num_comm}", "{date}", "{name}", "{message}");
if(mysql_num_rows($this->selComm))
{
while($comm = mysql_fetch_array($this->selComm))
{
$replace = array($num_comm, $comm['date'], $comm['name'], $comm['msg']);
echo str_replace($search, $replace, $comm_tpl);
}
}
...
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(06.06.2011 в 18:22)
| | Спасибо большое!) Всё так, как нужно)
Ответьте ещё на один вопрос пожалуйста? Вот читал я про статические свойства класса, но пока не понял, где можно их применить? Можете дать ссылки или выложить куски кода, в которых показано(расказано) о том где их лучше использовать? | |
|
|
|
|
|
|
|
для: (Sandr)
(06.06.2011 в 19:04)
| | Собственно ничего сложного в них нет. Это общие для всех объектов переменные, в них можно хранить значения которые нужны всем объектам данного класса без исключения или использовать в качестве счетчика объектов (изменения в одном объекте отражаются на всех остальных объектах).
Это очень крутое и мощное свойство в средах, где объекты живут долго. Понятно что в условиях Web-страниц, где объект живет лишь покуда выполняется скрипт, польза от таких переменных значительно меньше (так как изменения в таких свойствах не передаются от страницы к странице, если об этом специально не заботиться).
Статические методы удобны тем, что могут использоваться без создания объектов. Т.е. классы со статическими методами выступают в качестве своеобразного пространствами имен. Поэтому вы смело можете заводить функции с произвольными именами, не заботясь о том, что имя функции может совпасть с именем библиотечной. Например, можно реализовать в классе копии строковых функций, но которые будут корректно работать с UTF-8. Для обращения к этим методам нужно будет указывать префикс класса, например text::strlen($str). При этом не нужно будет тратить память и время на создание объекта text(), вызов new, инициализацию объекта конструктором и т.п.
PS Под новые вопросы, лучше новые темы заводить. | |
|
|
|