CodeIgniter joindre deux tables

J'essaie de joindre deux tables à l'aide de CodeIgniter. J'ai utilisé CodeIgniter guide de l'utilisateur pour obtenir de l'aide. Je vais avoir quelques problèmes où une seule table de données s'affiche et je ne sais pas pourquoi. Quelqu'un peut-il m'aider?

Voici mon code:

Contrôleur

function getall(){      
    $this->load->model('result_model');
    $data['query'] =
    $this->result_model->result_getall();
    $this->load->view('result_view', $data);
    }

Modèle

 function result_getall(){

    $this->db->select('*');
    $this->db->from('tblanswers');
    $this->db->join('credentials', 'tblanswers.answerid = credentials.cid', 'left'); 
    $query = $this->db->get();
    return $query->result();

    }

Vue

    <div>    


 <?php foreach ($query as $row): ?>      
                     //tblanswers
                   <?php echo $row->answerA;?><br>
               <?php echo $row->answerB;?><br>
               <?php echo $row->answerC;?><br>
                   <?php echo $row->comment;?><br>
                  //credentials
                    <?php echo $row->name; ?>
         <?php endforeach; ?>  


   </div>
  • utilisez echo $this->db->last_query() pour voir la requête générée.
  • c'est la requête qui est généré SELECT * from (tblanswers) LEFT JOIN credentials SUR tblanswers.answerid = credentials.cid
  • double possible de codeigniter 2 les données de la table
  • utiliser var_dump($query->result())..est-il en montrant de la seconde table de données? qu'est-ce que la sortie de cette?
  • u peut expliquer plus sur le dublicate table ?
  • Êtes-vous sûr que vous voulez faire un left join?
  • où devrait-je ajouter le var_dump ?
  • non, je ne suis pas sûr, est-il une meilleure façon au lieu de left join ?
  • il y a peut être des colonnes avec le même nom de sorte qu'il peut écraser essayez de sélectionner et de repliement de chaque colonne, vous devez
  • Eh bien, cela dépend de ce que vous voulez. Mais si vous retirez le 'left' paramètre de votre join appel, vous obtiendrez des enregistrements à partir de tblanswers qui ont des enregistrements liés dans credentials. Si vous utilisez une jointure gauche, vous bénéficiez de tous les enregistrements à partir de tblanswers et il peut ne pas être tous les enregistrements associés dans credentials, de sorte que ces champs de rester vide.
  • il n'y a pas de colonnes avec le même nom j'ai fait en sorte de que
  • quand j'enlève les left join tous les enregistrements disapiere
  • C'est donc un problème avec vos données, et non pas avec votre code. Il n'y a pas d'enregistrements avec tblanswers.answerid = credentials.cid.
  • quel est le problème avec les données ?
  • Il n'y a pas d'enregistrements avec tblanswers.answerid = credentials.cid.
  • je suis désolé, je dount undarstand u peut s'étendre de plus sur votre commentaire ?
  • Il n'y a pas d'enregistrements dans tblanswers qui ont une answerid qui est égale à la cid colonne de tous les enregistrements dans la credentials table. À partir de cette question, il semble que vous n'avez aucune idée de la façon dont les jointures de travail. Jetez un oeil à ceci.