Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [CodeIgniter]Pobieranie danych.., .. z bazy mysql..
kajzur
post
Post #1





Grupa: Zarejestrowani
Postów: 385
Pomógł: 26
Dołączył: 22.03.2008
Skąd: TM

Ostrzeżenie: (0%)
-----


Witam, mam dośc dużo wpisów w formacie:

link | filename | id

I chciałbym wszystko pobrać i wyświetlić w jakiejś pętli, normalnie robiło się to bez problemu, lecz tutaj go mam.. Więc tak, w modelu mam:

  1. <?php
  2. function get_ebooks()
  3.   {
  4.  
  5.   $listing = $this->db->query("select * from `book`");
  6.   $listing = $listing->row_array();
  7.  // $return = $listing['filename'], $listing['link']; // TODO: DOKONCZ TOOO
  8.  
  9.   return $listing;
  10.  
  11.   }
  12. ?>


No i w kontrolerze:

  1. <?php
  2. {
  3.  
  4. $this->load->model("Ebook", "book");
  5. $tekst = $this->book->get_ebooks();
  6. //$tekst = array($tekst);
  7.  
  8. print_r($tekst);
  9.  
  10. $this->load->view('page', $tekst);
  11.  
  12. }
  13. ?>


No i zamiast listingu całej bazy mam z print_f:
Array ( [link] => 102cytaty [filename] => 102cytaty.pdf [id] => 1 )

Sądze że błąd tkwi w modelu.. tutaj jest odnosnik do manuala: http://codeigniter.com/user_guide/database/results.html

Proszę o pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Problemem jest pewnie to, że row_array() ustawia się zawsze na pierwszym rekordzie. Aby przeiterować po kolejnych elementach skorzystaj z (podane w linku, który dałeś):
Cytat
In addition, you can walk forward/backwards/first/last through your results using these variations:

$row = $query->first_row()
$row = $query->last_row()
$row = $query->next_row()
$row = $query->previous_row()

By default they return an object unless you put the word "array" in the parameter:

$row = $query->first_row('array')
$row = $query->last_row('array')
$row = $query->next_row('array')
$row = $query->previous_row('array')

albo po prostu skorzystaj z przykładu result() z wykorzystaniem pętli foreach.
Go to the top of the page
+Quote Post
kajzur
post
Post #3





Grupa: Zarejestrowani
Postów: 385
Pomógł: 26
Dołączył: 22.03.2008
Skąd: TM

Ostrzeżenie: (0%)
-----


(IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Result jest dobre (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Dzięki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

A wiecie może jak zrobić, żeby ładować w np jednej funkcji tablice do widoków, i żeby zmienne były dostępne w widokach? Chodzi o to, żeby nie dawać w każdej funkcji tego samego np mam $t['tresc'] i nie chce w każdej funkcji dawać tego tylko np raz w każdej funkcji chce mieć to dostepne, da się tak?
Go to the top of the page
+Quote Post
phpion
post
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




No to zamiast przekazywać pojedyncze zmienne przekaż całą tablicę do widoku i po sprawie.
Go to the top of the page
+Quote Post
kajzur
post
Post #5





Grupa: Zarejestrowani
Postów: 385
Pomógł: 26
Dołączył: 22.03.2008
Skąd: TM

Ostrzeżenie: (0%)
-----


Ale chodzi o to, że jak przekaże ją w funkcji np kontakt (taka podstrona) to ona nie będzie już na podstronie np oferta..
Go to the top of the page
+Quote Post
phpion
post
Post #6





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




W takim razie utwórz sobie jakiś nadrzędny kontroler np. Website_Controller, po którym dziedziczyć będą właściwe np. Contact_Controller, Offer_Controller. W jego konstruktorze stwórz (pobierz z modelu) jakieś globalne dane i przypisz je do szablonu głównego. Niestety nie powiem Ci jak się to robi w CodeIgniter ale w Kohana masz do tego bardzo sprytny Template_Controller. Utwórz coś na wzór niego albo... przejdź na Kohana (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 10:08