|
|
|
| Есть два файла.
index.php :
include ("news_class.php");
$newlab = new news();
$newlab -> read();
|
и файл, который вгружается в index. называется он news_class :
class news {
function read() {
$cont = mysql_query("select * from news order by date;");
$newc = mysql_fetch_array($cont);
}
}
|
В базе есть пару записей (пускай это будет новостная лента). 4 поля в базе: id, name, text и date. Все кроме id надо как-то вывести на экран через index.php.
Как это лучше сделать с классами? | |
|
|
|
|
|
|
|
для: ChieFSS
(03.06.2007 в 17:48)
| | А почему именно с помощью классов?
<?php
$sql = mysql_query("SELECT `name`, `text`, `date` FROM `news` ORDER BY `date`;");
while($news = mysql_fetch_assoc($sql))
{
echo(
$news["name"] . "<br />\r\n" .
$news["text"] . "<br />\r\n" .
$news["date"] . "<br />\r\n"
);
}
?>
|
| |
|
|
|
|
|
|
|
для: Unkind
(03.06.2007 в 18:21)
| | Я хотел чтобы у меня новости были как отдельный класс, а в этом классе 3 функции (чтение, изменение и удаление). Вывод новостей на экран не знаю как лучше сделать. Думал 4ой функцией запустить или объединить с чтением, но тогда не получится выводить последние 5.
P.S. Я просто ООП учу. Нужно попробовать самому что-то написать чтоб разобраться в каждой строчке. | |
|
|
|
|
|
|
|
для: ChieFSS
(03.06.2007 в 18:28)
| | Ну Ваша $newc = mysql_fetch_array($cont) ничего сама по себе не выведет. Попробуйте заменить эту строку на цикл Unkind | |
|
|
|
|
|
|
|
для: kasmanaft
(03.06.2007 в 18:40)
| | На экран можно вывести это все если далее написать print $newc['name'];
Но мне не надо чтобы оно выводилось при запуске функции "read".
Иначе куда мне вписывать html код. Ой.. Кстати еще одна проблема. А куда html то вписывать?)) Не в сами классы же. | |
|
|
|
|
|
|
|
для: ChieFSS
(03.06.2007 в 18:44)
| | Но мне не надо чтобы оно выводилось при запуске функции "read".
Так и запихните этот код в функцию "read()". | |
|
|
|
|
|
|
|
для: Unkind
(03.06.2007 в 18:46)
| | пробовал прописать в index.php
$content = $newlab->newc['name'];
print $content;
Чето не работает. пишет Undefined property: newc.
Мне в принципе то отсюда надо только вытащить переменную newc со всеми его значениями, а потом просто в html коде когда надо будет вызвать её как newc['name'], newc['text'] и newc['date']
Ток как это сделать.... | |
|
|
|
|
|
|
|
для: ChieFSS
(03.06.2007 в 18:57)
| | Присваивать переменные в классе надо через конструкцию "$this->variable", где variable - имя переменной. | |
|
|
|
|
|
|
|
для: Unkind
(03.06.2007 в 19:06)
| | Куда я только $this-> не сувал.. никак не получается.
К переменной в класе можно обратиться через $classname->peremennaya;
К функции $classname->functionname();
А вот как обратиться к переменной внутри функции ?
Цель так близка..... | |
|
|
|
|
|
|
|
для: ChieFSS
(03.06.2007 в 19:14)
| | Да обращаться надо как обычно - $classname->variable.
Задавать переменные надо по-другому: $this->newc = mysql_fetch_array($cont); | |
|
|
|
|
|
|
|
для: Unkind
(03.06.2007 в 19:17)
| | О заработало. Спасибо. А я думал что $this-> в классе надо писать только в том случае если её вначале определяешь через "var". Кстати обязательно переменные определять вначале класса? | |
|
|
|
|
|
|
|
для: ChieFSS
(03.06.2007 в 19:25)
| | Нет. Можно и в конце. | |
|
|
|
|
|
|
|
для: Unkind
(03.06.2007 в 19:30)
| | Ясно. Спасибо за помощь. | |
|
|
|