2011-06-10 4 views
3

permet de dire que la requête de mon contrôleur est $ query.
comment afficher les données autres que l'utilisation de ce type de code?Afficher la requête dans la vue codeigniter

foreach($query as $row){ 
echo $row->student_id; 
} 

tout autre que ce coz la requête n'ont une ligne
d'une façon qui puis-je accéder au tableau retourné comme celui-ci?

$query['student_id']; 
+0

Une autre alternative est de stocker les données dans une session accessible n'importe où sur votre site sans interrogation à chaque fois. Certaines données idéales pour stocker dans une session est un nom d'utilisateur ou un identifiant d'utilisateur. http://codeigniter.com/user_guide/libraries/sessions.html – CyberJunkie

Répondre

2

disons que votre table ont les champs suivants

student_id and student_name 

ont votre modèle ou le retour du contrôleur qu'une seule ligne.

function get_first_student() { 

    $query = this->db->select('*')->from('student')-where('student_id','1')->limit(1); 
    $data['stuff'] = $query->row_array(); // or $query->row() which returns an object 
    $this->load->view('whatever',$data) 

} 

alors à votre avis

<p>student name: <?= $stuff['student_name'] ?> </p> 
<p>student id: <?= $stuff['student_id'] ?> </p> 
1

En fait, $query->row() récupère juste la première ligne.

Ainsi, au lieu de bouclage par le résultat, vous pouvez simplement faire:

$student_id = $query->row()->student_id; // (untested) 

OU

$row = $query->row(); 
$student_id = $row->student_id; 

En supposant que la requête renverra toujours une ligne.

0

Supposons que vous affichez le profil d'un utilisateur. Il est recommandé de stocker toutes les requêtes de base de données dans le MODÈLE. J'utilise ceci:

CONTRÔLEUR:

$this->load->model('Profile'); 
$data['row'] = $this->Profile_model->profile_read(); //get profile data 
$this->load->view('profile_view', $data); //load data to view 

Modèle:

function profile_read() 
{ 
     $this->db->where('user_id', $user_id); 
     $query = $this->db->get('user_profiles'); //get all data from user_profiles table that belong to the respective user 
     return $query->row(); //return the data  
} 

Dans le modèle que vous pouvez avoir toutes vos autres fonctions de base de données (créer, supprimer, mettre à jour)

VIEW:

<?php echo $row->name; ?> 
<?php echo $row->email; ?> 
<?php echo $row->about; ?> 
etc 

Enfin, dans la vue, vous pouvez renvoyer toutes les lignes de la table appartenant à l'utilisateur.

Questions connexes