2010-09-16 5 views
0

je ce code dans mon modèle CodeIgniter:Comment afficher les données adodb dans Codeigniter à mon avis?

<?php 
class User_model extends Model { 

    function User_model() 
    { 
     parent::Model(); 
    } 
    function get_data() 
    { 
     $pages = false; 

     // Get the pages from the database using adodb if needed 
     $this->adodb->connect(); 

     $recordSet = $this->adodb->execute('SELECT id, genreID, artist, albumName FROM album'); 
     if (! $recordSet) 
     { 
      log_message('error', 'Error connecting to the database'); 
      log_message('debug', $this->adodb->getErrorMsg()); 
     } 
     else 
     { 
      unset($this->pages); 
      while (!$recordSet->EOF) 
      { 
       $pages[] = array(
        'id' => $recordSet->fields[0], 
        'genreID' => $recordSet->fields[1], 
        'artist' => $recordSet->fields[2], 
        'albumName' => $recordSet->fields[3] 
       ); 

       $recordSet->MoveNext(); 
      } 
      $this->pages = $pages; 
     } 

     $this->adodb->disconnect(); 

    } 
} 
?> 

J'ai dans mon contrôleur:

<?php 

    class Welcome extends Controller { 

     function Welcome() 
     { 
      parent::Controller(); 
     } 

     function index() 
     { 
      // 
      $this->load->model('User_model'); 
      $data['query'] = $this->User_model->get_data(); 
      $this->load->view('welcome_message',$data); 
     } 
    } 

Ce que je ne peux pas faire est d'obtenir mes résultats du modèle dans mon avis. Il n'y a pas d'objet résultat() parce que je adodb donc ceci:

<?php foreach($query->result() as $row): ?> 
<p> 
    <?=$row->albumName;?> 
</p> 
<?php endforeach; ?> 

moi obtient une erreur.

Qu'est-ce que je mets dans ma vue pour obtenir les résultats de la requête de mon modèle. Je sais que le modèle fonctionne parce que je peux echo $ recordSet-> fields [3]; du modèle et voir le nom de l'album.

Nous vous remercions de votre aide.

edit: Je ne comprends pas pourquoi mon appel get_data() dans ma vue ne renvoie rien.

Répondre

0

Pour un, vous ne renvoyez rien à partir de get_data, de sorte que $ query sera nul. De même, vous ne devez pas exécuter la requête dans la vue, car le contenu de la vue ne doit pas gérer les opérations de la couche de données, vous avez également été déconnecté de la base de données.

+0

Je copiais le gars en bas d'ici http://codeigniter.com/forums/viewthread/65672/ Je pensais que je suivais le modèle d'enregistrement actif appelant la requête du contrôleur, mais je ne sais pas pourquoi get_data ne retourne rien. – johnny

+0

Je mets dans un retour $ recordSet mais get_data ne retourne rien à la vue. Les données sont uniquement présentes dans le modèle. – johnny

+0

Vous n'avez pas besoin d'utiliser $ query-> results(), avez-vous essayé quelque chose de similaire à l'itération faite dans le modèle sur recordSet? notez que la raison pour laquelle le modèle ne renvoie pas de valeur est que l'implémenteur définit la valeur sur une propriété du modèle ($ this-> pages), vous pourrez peut-être y accéder $ this-> User_model-> pages mais généralement Je n'ajoute pas de propriétés au modèle. –

Questions connexes