2010-11-14 5 views
0

Je veux choisir parmi 3 tables « Forum_traad » « Forum_kommentare » « utilisateurs »CodeIgniter rejoindre problème

Je veux recueillir de tous les champs « forum_traad » et « forum_kommentare » et ne recueillir que le champ « profil_billed » dans mes tables utilisateurs et je veux montrer l'image qui correspond à l'utilisateur qui a créé le fil, et ceux qui ont créé un respons dans le fil.

J'ai un champ dans "forum_traad" et "forum_kommentare" qui s'appelle "Brugernavn" et il doit correspondre à "Brugernavn" dans les tables "users".

espère que vous comprenez ce que je veux dire, ce que je fait jusqu'à présent:

fichier modèle

:

$this->db->select('*,forum_traad.indhold as traad_indhold, 
         forum_kommentare.indhold as kommentare_indhold, 
         forum_traad.brugernavn as traad_brugernavn, 
         forum_traad.id as traad_id, users.profil_billed as billed 
        '); 
      $this->db->from('forum_traad'); 
      $this->db->join('forum_kommentare', 'forum_kommentare.fk_forum_traad = forum_traad.id'); 
      $this->db->join('users', 'forum_traad.brugernavn = users.profil_billed'); 
      $this->db->where('forum_traad.id', $id); 
      $query = $this->db->get(); 

mon fichier de vue:

if($query) 
{ 
echo $query->overskrift; 
} else { 
echo "der er ikke noget"; 
} 

Répondre

1

un conseil simple: lorsque vous postez votre question, essayez de changer les données (votre code) en anglais ... et décrivez ce que certains paramètres - les données signifient dans votre programme, les relations dans db ta bles, fk-s ... dans ce cas, plus de gens vont essayer de vous aider et certaines choses pour eux apparaîtront plus évidentes que s'ils doivent déchiffrer ce qui se passe ici ...

Alors je vais essayer de vous aider :

Ceci est votre sql écho:

SELECT *, forum_traad.indhold as traad_indhold, 
      forum_kommentare.indhold as kommentare_indhold, 
      forum_traad.brugernavn as traad_brugernavn, 
      forum_traad.id as traad_id, 
      users.profil_billed as billed 
FROM (forum_traad) 
    JOIN forum_kommentare ON forum_kommentare.fk_forum_traad = forum_traad.id 
    JOIN users ON forum_traad.brugernavn = users.profil_billed 
WHERE forum_traad.id = '5' 

Une traduction danois (je suppose) à l'anglais sera quelque chose comme ceci:

SELECT *, forum_thread.content as thread_content, 
      forum_comments.content as comments_content, 
      forum_thread.user as thread_user, 
      forum_thread.id as thread_id, 
      users.profil_image as image 
FROM (forum_thread) 
    LEFT JOIN forum_comments 
    ON forum_comments.fk_forum_thread = forum_thread.id 
     LEFT JOIN users 
     ON forum_thread.user = users.profil_image 
WHERE forum_thread.id = '5' 

En dernière vous rejoindre joindre table des utilisateurs sur l'image col ? .. UMN essayer la place:

LEFT JOIN users 
ON forum_comments.user = users.id 

Dans ce cas, vous obtiendrez toutes les personnes qui postent des commentaires dans un fil

Je ne sais pas si cela (y compris l'affiche principale parce que son poste est d'abord?) est la bonne solution (réponse). Si ce n'est pas poster votre commentaire ici et nous allons essayer d'aider.