Afficher plusieurs tables en php

ladj59 Messages postés 322 Statut Membre -  
ladj59 Messages postés 322 Statut Membre -
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>';

}
Configuration: Windows XP
Internet Explorer 7.0

6 réponses

  1. giheller
     
    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
  2. Dacobah Messages postés 272 Statut Membre 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
    1. ladj59 Messages postés 322 Statut Membre 3
       
      c'est quoi clefprimaire t clefetrangere??
      0
    2. giheller
       
      oui tu as raison.
      0
  3. ladj59 Messages postés 322 Statut Membre 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
  4. ladj59 Messages postés 322 Statut Membre 3
     
    quelqu'un a une idée?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ladj59 Messages postés 322 Statut Membre 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
  7. ladj59 Messages postés 322 Statut Membre 3
     
    quelqu'un aurait une idée pour resoudre le probleme?
    0