Afficher plusieurs tables en php

ladj59 Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   -  
ladj59 Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je voudrais afficher tous les sujets présents dans une bdd qui contient 2 tables(base_physique et sujets) sachant que si on retrouve le même sujet dans les 2tables il ne doitr s'afficher qu'une fois
le champs des tables s'appelle a chaque fois sujet
j'ai fait le prog suivant mais je ne ne sais pas pourquoi cela ne marche pas(cela ne m'affiche que le echo avec la 2éme conditron du while)

<?php

$sujets=mysql_query("SELECT DISTINCT sujet FROM base_physique ORDER BY sujet ");
$sujets2=mysql_query("SELECT DISTINCT sujet FROM sujets ORDER BY sujet ");

while ($sujet = mysql_fetch_array($sujets) && $sujet2 = mysql_fetch_array($sujets2)) #propose tous les sujets présents dans la base de donnée
{
echo '<option value="'.$sujet2['sujet'].'">'.$sujet2['sujet'].'</option>';
echo '<option value="'.$sujet['sujet'].'">'.$sujet['sujet'].'</option>';

}
A voir également:

6 réponses

Utilisateur anonyme
 
bonjour
j'ai pas la syntaxe exacte mais il faut faire select * from table1, table2 left_inner join on table1.sujet, table2.sujet

désolé j'ai pas mon livre de chevet ici
0
Dacobah Messages postés 260 Date d'inscription   Statut Membre Dernière intervention   74
 
Non ce n'est pas tout à fait comme l'a dit giheller.

Il faut faire :

SELECT * 
FROM table1
INNER JOIN table2 ON table1.clefprimaire = table2.clefétrangère;
INNER JOIN table3 ON table2.clefprimaire = table3.clefétrangère;


etc ...
0
ladj59 Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   3
 
c'est quoi clefprimaire t clefetrangere??
0
Utilisateur anonyme
 
oui tu as raison.
0
ladj59 Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   3
 
j'ai faitr cela
mais le probleme c'est que cela me met que les sujets qui sont présents dans les 2 tables
moi ce que je veux c'est tous les sujets de la table 1 tous ceux de la table 2 mais si un sujet est présent dans la table 1 et dans la table 2 alors il n'apparait qu'une fois
de meme si un sujet est présent plusieurs fois dans la même table iil n'apparait qu'une fois


$sujets=mysql_query("SELECT DISTINCT * FROM base_physique INNER JOIN sujets ON base_physique.sujet=sujets.sujet");

while ($sujet = mysql_fetch_array($sujets)) #propose tous les sujets présents dans la base de donnée
{
echo '<option value="'.$sujet['sujet'].'">'.$sujet['sujet'].'</option>';

}
0
ladj59 Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   3
 
quelqu'un a une idée?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ladj59 Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   3
 
ca y est j'ai reussi a afficher le resultat des 2 tables
il reste juste un probleme qui est que si un sujet est présent dans base_physique et dans sujets il sera affiché 2 fois dans le resultat donc au début tous les sujets de base -physique sont mis puis quand on ajoute les sujets de sujets il faut a chaque fois verifié qu'il n'est pas deja present
mais je ne sais pas trop comment faire

merci de votre aide

<?php

$sujets=mysql_query("SELECT DISTINCT sujet FROM base_physique");
$sujets2=mysql_query("SELECT DISTINCT sujet FROM sujets");

while ($sujet = mysql_fetch_array($sujets)) #propose tous les sujets présents dans la table
{
echo '<option value="'.$sujet['sujet'].'">'.$sujet['sujet'].'</option>';
}

while ($sujet2 = mysql_fetch_array($sujets2)) #propose tous les sujets présents dans la table
{
echo '<option value="'.$sujet2['sujet'].'">'.$sujet2['sujet'].'</option>';
}
0
ladj59 Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   3
 
quelqu'un aurait une idée pour resoudre le probleme?
0