2011-01-13 4 views
1

J'ai deux tables; NOUVELLES et CATÉGORIES. Dans la table NEWS, il y a un champ CatID qui correspond à la table CatID dans les catégories. Je reçois le categoryID avec le code suivant mais je veux le nom de la catégorie des nouvelles, pas l'ID. Comment puis-je le retirer du tableau des catégories?ID correspondants dans deux tables différentes

<?php 

$SQL = mysql_query("SELECT * FROM News WHERE Active = 1 ORDER BY DateEntered DESC"); 

    while ($Result = mysql_fetch_array($SQL)) { 
$CatID[] = $Result[CatID]; 
$NewsName[] = $Result[NewsName]; 
$NewsShortDesc[] = $Result[NewsShortDesc]; 
} 
?> 

       <div class="toparticle"> 
        <span class="section"><?=$CatID[0] ?> </span> 
        <span class="headline"><?=$NewsName[0] ?></span> 
        <p><?=$NewsShortDesc[0] ?></p> 
       </div> 
+2

Votre question semble manquer un texte, pouvez-vous s'il vous plaît mettre à jour et ajouter les détails manquants de ce que vous obtenez et de ce que vous voulez faire? –

+0

Merci de m'avoir informé. – Eat

+0

Peut-être que ce que vous cherchez est JOIN (http://dev.mysql.com/doc/refman/5.0/en/join.html)? – lepe

Répondre

0

Vous pouvez modifier votre requête SQL pour inclure une jointure interne pour obtenir le nom. Pour illustrer, je vais faire l'hypothèse que la colonne de nom de catégorie dans la table 'CATEGORIES' s'appelle 'CatName'. Vous pouvez utiliser cette requête:

SELECT n.*, c.CatName FROM News n 
INNER JOIN Categories c ON n.CatID = c.CatID 
WHERE Active = 1 
ORDER BY DateEntered ASC 
0

Par ce que je l'ai compris, peut-être que vous voulez faire:

SELECT name FROM CATEGORIES as c, NEWS as n WHERE c.CatID = n.CatID AND n.CatID = 123

Je suis un peu rouillé dans SQL, je pense qu'il est quelque chose comme ça . D'après ce que j'ai compris de votre question, vous voulez faire quelque chose comme ça.

+0

La réponse suivante semble mieux :) –

0

Dans ce qui suit je crée 2 table pour les nouvelles et les catégories:

Tableau Nouvelles

id | cat_id | titre

1 | 1 | Test

Tableau Catégories

id | nom

1 | Horreur

u peut choisir le nom de OUTER catégorie d'utilisation JOIN comme celui-ci

SELECT news.*, categories.name AS category_name FROM news 
LEFT JOIN categories ON categories.id= news.cat_id; 

si tu veux en savoir plus sur ce outer join

Questions connexes