2010-11-12 3 views
0

J'ai 2 tabels dans ma base de données "forum_traad" et "forum_kommentare" mais ils ont la même ligne "indhold" donc quand j'essaie de rejoindre forum_traad et forum_kommentare et je veux faire écho la ligne "indhold" de "forum_traad "ça fait écho au" indhold "de" forum_kommentare ", que puis-je faire?codeigniter rejoindre le problème

mon avis:

<div id="forum"> 


    <?php 
    if($query) 
    { 
    ?> 
    <div class="forum_headline">Forum kategori - Forum tråde - <?php echo $query->overskrift; ?></div><!-- forum_headline --> 
    <div class="forum_profil_img"></div><!-- forum_profil_img --> 
    <div class="forum_post_content"> 
    <span style="font-size:15px;"><?php echo anchor('profil/'.$query->brugernavn, $query->brugernavn); ?></span> 
    <span style="font-size:11px; margin-left:3px; color:#686868;"><i> Siger</i></span><br> 
    <?php echo $query->indhold; 
    echo "<br>ID: ".$query->id; 
    ?> 
    </div><!-- forum_post_content --> 


    <?php 
    } else { 
    echo "Der blev ikke fundet nogen post"; 
    } 
    ?> 

</div><!-- forum --> 

Mon modèle

function posts($id) 
{ 
    $this->db->select('*'); 
    $this->db->from('forum_traad'); 
    $this->db->join('forum_kommentare', 'forum_kommentare.fk_forum_traad', 'forum_traad.id'); 
    $this->db->where('forum_traad.id', $id); 

    $query = $this->db->get(); 

    if($query->num_rows > 0) 
    { 
    return $query->row(); 
    } else { 
    return false; 
    } 

} 

Répondre

1

Vous pouvez leur donner un autre nom:

$this->db->select('forum_traad.indhold as traad_indhold, 
        forum_kommentare.indhold as kommentare_indhold'); 

Si vous avez besoin de la fonctionnalité de * vous pouvez en plus choisir :

$this->db->select('forum_traad.indhold as traad_indhold, 
        forum_kommentare.indhold as kommentare_indhold, 
        forum_traad.*, 
        forum_kommentare.*'); 
+0

lorsque j'essaie le dernier j'ai eu cette erreur Numéro d'erreur: 1064 Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de '* FROM ('forum_traad') JOIN' forum_kommentare' ON 'forum_kommentare'.'fk_forum_t' à la ligne 1 SELECT' forum_traad'.'indhold' comme traad_indhold, 'forum_kommentare'.'indhold' comme kommentare_indhold, * FROM (' forum_traad') JOIN 'forum_kommentare' SUR' forum_kommentare'.'fk_forum_traad' OERE 'forum_traad'.''''' '13' – Simon

+0

Oh, désolé .. Vous ne pouvez pas utiliser la plaine * lorsque vous la mélangez avec des champs uniques et que vous avez plusieurs tables. Corrigé l'exemple. – AndreKR