2012-08-24 7 views
0

J'ai une question: Je ne peux pas passer les données du modèle au contrôleur Vous pouvez voir certains de mes codes, s'il vous plaît aidez-moi. Ça ne marche pas!Obtenir des données du modèle au contrôleur

c'est mon modèle "mymodel.php"

.... 

$query = $this->db->query("SELECT * FROM `rand` WHERE `used` = 0 LIMIT 0, 1"); 
    if($query){ 
    foreach ($query->result() as $row); 
    } 
    $t = "EXAMPLE/{$row->code}"; 
    function wandad() { 
     return $t; 
    } 
..... 

et ceci est mon contrôleur mycont.php

... 
$this->load->model('mymodel'); 

$data['new'] = $this->Mymodel->wandad(); 
$this->load->view('myview',$data); 
... 

et ceci est mon avis myview.php

.... 
echo $new; 
..... 

Répondre

1

Il est clair que vous Le modèle n'est pas inscrit correctement et CORRENT ce simple faire ce

1.) Je mets une valeur par défaut de $ t

2.) Je mis la requête >> boucle sur la fonction à l'intérieur

wandad

il peut donc être exécutée une fois appelé contrôleur de

function wandad() { 
    $query = $this->db->query("SELECT * FROM `rand` WHERE `used` = 0 LIMIT 0, 1"); 
    $t = ""; 
    if($query){ 

     foreach ($query->result() as $row){ 
      $t = "EXAMPLE/{$row->code}".'<br>'; 
     } 
    } 

    return $t; 
    } 
1

Voici plusieurs problèmes dans votre modèle

  • Votre fonction Foreach ne fait rien
  • $t est pas dans le même espace de noms que wandad()
  • Fonction wandad n'est pas défini dans votre classe modèle

Je ne suis pas sûr ce que vous voulez obtenir avec la fonction wandad() mais voici un motif.

function yourFunction() 
{ 
    /* This will return the full query as an array */ 
    $query = $this->db->query("SELECT * FROM `rand` WHERE `used` = 0 LIMIT 0, 1")->result_array(); 
    /* Store variable in the same class */ 
    $this->t = "EXAMPLE/".$query[0]['code']; 
/* Close yourFunction() */ 
} 
public function wandad() { 
    return $this->t; 
} 

Ensuite, dans votre contrôleur, faites-le à la place:

$this->load->model('mymodel'); 
$this->mymodel->yourFunction(); 
$data['new'] = $this->mymodel->wandad(); 
$this->load->view('myview',$data); 
+0

Ma boucle foreach travaille un peu, je suis sûr. –

+0

Eh bien mes excuses, mais pour moi, 'foreach ($ query-> résultat() comme ligne de $)' ne résiste pas à toute action – Touki

+0

OK, Merci pour votre commentaire. Mais mon problème n'a pas résolu! –

0

@Touki son foreach ne fait quelque chose. Il définira la variable $ row avec la dernière ligne renvoyée par la requête. Pas la meilleure façon de le faire ... Mais c'est un moyen. Il serait préférable d'utiliser une limite dans la requête.

0

Il y a une petite erreur dans votre code @ Ernesto.that est

foreach ($query->result() as $row){ 
     $t. = "EXAMPLE/{$row->code}".'<br>'; 
    } 

mais votre code était tout simplement agréable

Questions connexes