Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не получается вынуть значение
 
 автор: ChieFSS   (03.06.2007 в 17:48)   письмо автору
 
 

Есть два файла.
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.
Как это лучше сделать с классами?

   
 
 автор: Unkind   (03.06.2007 в 18:21)   письмо автору
 
   для: 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"
    
);
}
?>

   
 
 автор: ChieFSS   (03.06.2007 в 18:28)   письмо автору
 
   для: Unkind   (03.06.2007 в 18:21)
 

Я хотел чтобы у меня новости были как отдельный класс, а в этом классе 3 функции (чтение, изменение и удаление). Вывод новостей на экран не знаю как лучше сделать. Думал 4ой функцией запустить или объединить с чтением, но тогда не получится выводить последние 5.

P.S. Я просто ООП учу. Нужно попробовать самому что-то написать чтоб разобраться в каждой строчке.

   
 
 автор: kasmanaft   (03.06.2007 в 18:40)   письмо автору
 
   для: ChieFSS   (03.06.2007 в 18:28)
 

Ну Ваша $newc = mysql_fetch_array($cont) ничего сама по себе не выведет. Попробуйте заменить эту строку на цикл Unkind

   
 
 автор: ChieFSS   (03.06.2007 в 18:44)   письмо автору
 
   для: kasmanaft   (03.06.2007 в 18:40)
 

На экран можно вывести это все если далее написать print $newc['name'];
Но мне не надо чтобы оно выводилось при запуске функции "read".
Иначе куда мне вписывать html код. Ой.. Кстати еще одна проблема. А куда html то вписывать?)) Не в сами классы же.

   
 
 автор: Unkind   (03.06.2007 в 18:46)   письмо автору
 
   для: ChieFSS   (03.06.2007 в 18:44)
 

Но мне не надо чтобы оно выводилось при запуске функции "read".
Так и запихните этот код в функцию "read()".

   
 
 автор: ChieFSS   (03.06.2007 в 18:57)   письмо автору
 
   для: 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']
Ток как это сделать....

   
 
 автор: Unkind   (03.06.2007 в 19:06)   письмо автору
 
   для: ChieFSS   (03.06.2007 в 18:57)
 

Присваивать переменные в классе надо через конструкцию "$this->variable", где variable - имя переменной.

   
 
 автор: ChieFSS   (03.06.2007 в 19:14)   письмо автору
 
   для: Unkind   (03.06.2007 в 19:06)
 

Куда я только $this-> не сувал.. никак не получается.
К переменной в класе можно обратиться через $classname->peremennaya;
К функции $classname->functionname();
А вот как обратиться к переменной внутри функции ?
Цель так близка.....

   
 
 автор: Unkind   (03.06.2007 в 19:17)   письмо автору
 
   для: ChieFSS   (03.06.2007 в 19:14)
 

Да обращаться надо как обычно - $classname->variable.
Задавать переменные надо по-другому: $this->newc = mysql_fetch_array($cont);

   
 
 автор: ChieFSS   (03.06.2007 в 19:25)   письмо автору
 
   для: Unkind   (03.06.2007 в 19:17)
 

О заработало. Спасибо. А я думал что $this-> в классе надо писать только в том случае если её вначале определяешь через "var". Кстати обязательно переменные определять вначале класса?

   
 
 автор: Unkind   (03.06.2007 в 19:30)   письмо автору
 
   для: ChieFSS   (03.06.2007 в 19:25)
 

Нет. Можно и в конце.

   
 
 автор: ChieFSS   (03.06.2007 в 19:30)   письмо автору
 
   для: Unkind   (03.06.2007 в 19:30)
 

Ясно. Спасибо за помощь.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования