Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [CodeIgniter] Prezentacja wyników zapytania
Testosteron
post
Post #1





Grupa: Zarejestrowani
Postów: 113
Pomógł: 2
Dołączył: 15.09.2011

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


Witajcie, tworzę pewien skrypt i mam pewien problem. Otóż w 0momencie, kiedy próbuję wyświetlić wyniki zapytania, pojawia się tylko pierwszy wynik. wynik powinien pojawić się w divie. Robię to w taki sposób:
  1. function html_code($query){
  2. $this->load->database();
  3. $this->load->helper('url');
  4. $query = $this->db->query($query);
  5.  
  6.  
  7. foreach ($query->result() as $row)
  8. {
  9. return '<p>' .$row->name. '</p>';
  10. }
  11.  
  12.  
  13. }


Jeśli z kolei return zastąpię echo (wiem, że nie jest to prawidłowe, ale zrobiłem to w ramach testu), pojawiają się oba wpisy, jednak poza divem. Wcześniej próbowałem wyniki umieścić w tabeli, ale nic mi się nie pojawiało. W widoku natomiast mam dosyć typowy zapis -
  1. <div id="content">
  2. <?php
  3. echo $content;
  4. ?>
  5. </div>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Testosteron
post
Post #2





Grupa: Zarejestrowani
Postów: 113
Pomógł: 2
Dołączył: 15.09.2011

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


Dopiero uczę się CI i jeszcze nie korzystałem z modeli. Poczytam trochę na ten temat.

@Edit

Zrobiłem mały test. Stworzyłem model:
  1. <?php
  2. class Model extends CI_Model {
  3.  
  4.  
  5. function __construct()
  6. {
  7. // Wywołanie konstuktora modelu
  8. parent::__construct();
  9. }
  10.  
  11. function first_model()
  12. {
  13. $query = $this->db->query('SELECT * FROM element');
  14. return $query->result();
  15. }
  16.  
  17.  
  18. }
  19. ?>

I kontroler
  1. class Test extends Controller_main {
  2. function index(){
  3. $this->load->database();
  4. $this->load->model('model');
  5. $data = $this->model->first_model();
  6. foreach ($data as $row)
  7. {
  8. echo $row->name . '<br />';
  9.  
  10. }
  11.  
  12.  
  13. }
  14.  
  15. }

Problem nie zniknął, ponieważ znowu muszę bawić się pętlą w kontrolerze i martwić się o to, że return zatrzyma pętlę, więc muszę tworzyć pętlę wewnątrz widoku. Chyba nie taka jest idea modelu MVC?

Ten post edytował Testosteron 3.01.2015, 21:15:54
Go to the top of the page
+Quote Post
Rysh
post
Post #3





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Skoro masz dane w tablicy już pobrane z modelu, to przekaż je do widoku.
  1. function index(){
  2. $this->load->database();
  3. $this->load->model('model');
  4. $data['zmianna'] = $this->model->first_model();
  5. $this->load->view('test',$data);
  6. }

I w view/test.php dajesz:
  1. <html>
  2. <head></head>
  3. <body>
  4. <?php
  5. foreach($zmianna as $row) {
  6. echo $row .'<br />';
  7. }
  8. ?>
  9. </body>
  10. </html>

Pozatym, wczytaj sobie database do autoload.
Go to the top of the page
+Quote Post

Posty w temacie


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: 17.10.2025 - 06:22