За последние 24 часа нас посетили 16803 программиста и 1644 робота. Сейчас ищут 899 программистов ...

Массив нескольких значений

Тема в разделе "PHP для новичков", создана пользователем viphost, 28 мар 2012.

  1. viphost

    viphost Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    307
    Симпатии:
    0
    Здравствуйте, извиняюсь если тему я назвал не правильно.
    Помогите разобраться в следующем.
    Есть класс который выводит записи на страницу и проблема в том что не пойму как вывести в массиве более трех или же 4 объектов, т.е.
    Код (Text):
    1. class Index extends Model_Index {
    2.       function return_content() {
    3.           $res = $this->result_content() ;
    4.              while($row = mysql_fetch_array($res)) {
    5.                 $result[$row['id']] = $row['title'] ;
    6.             }
    7.          return $result;    
    8.       }
    9.   }
    10.      function content() {
    11.         $content = new Index() ;
    12.         $result = $content->return_content() ;
    13.         foreach($result as $id => $title) {
    14.         print_r("<a href = \"?id={$id}\">{$title}</a>") ;
    15.         }
    16.      }
    И нужно как то вывести дополнительные поля таблицы скажем text, tags, link
    Что то вроде того:
    Код (Text):
    1. <a href = \"?id={$id}\">{$title}</a><br />{$text}<br />{$tags}<br />{$links}<hr />
    Как можно это сделать?
     
  2. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Код (Text):
    1. class Index extends Model_Index {
    2.  
    3.     public function return_content() {
    4.         $result = array();
    5.         $res = $this->result_content();
    6.  
    7.         while ($row = mysql_fetch_assoc($res)) {
    8.             $result[$row['id']] = $row;
    9.         }
    10.  
    11.         return $result;
    12.     }
    13.  
    14. }
    15.  
    16. function content() {
    17.     $content = new Index();
    18.     $result = $content->return_content();
    19.     $out = '';
    20.  
    21.     foreach ($result as $key => $value) {
    22.         $out .= '<a href="?id=' . $key . '">' . $value['title'] . '</a><br />'
    23.                 . $value['text'] . '<br />' . $value['tags'] . '<br />' . $value['links'] . '<hr />';
    24.     }
    25.     return $out;
    26. }
    что-то типа такого, но все это мне не нравится. Каша какая-то с функции, класса и выводимого текста.
     
  3. viphost

    viphost Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    307
    Симпатии:
    0
    да все работает
    получается то что у меня было явно закоментировано что выводить тут
    Код (Text):
    1. $result[$row['id']] = $row['title'];
    Просто пока еще учусь всему, и кое что не понимаю.

    А на счет каши, что именно не так?
    У меня вобщем сделано следующее:
    Класс наследует значения другого класса, в котором подключение к базе данных, затем в функции определяем класс и выводим уже контент.
    Я добавил функцию лишь потому что в шаблоне хочется вывести
    Код (Text):
    1. <?php
    2. content();
    3. ?>
    А так бы пришлось в нем писать foreach

    Или я не правильно что то делаю?
     
  4. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Ну так в "крутых" шаблонизаторах есть же циклы, зачем отдельную функцию для этого делать? тем более, что эта функция только в этом месте будет использоваться и больше нигде. Вобщем, я бы так не делал.
     
  5. viphost

    viphost Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    307
    Симпатии:
    0
    до шаблонизаторов я еще не дорос =) и слышал что вроде как систему грузят
    Надо будет почитать про них, не могли бы список шаблонизаторов хороших выложить?
     
  6. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Я ими не пользуюсь. Свой "костыль" пока устраивает.
     
  7. viphost

    viphost Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    307
    Симпатии:
    0
    ясно =) в любом случае спасибо за помощь, я понял свою ошибку и это главное =)