Afficher plusieurs tables en php

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. 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
    1. 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. c'est quoi clefprimaire t clefetrangere??
        0
      2. oui tu as raison.
        0
    2. 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
      1. quelqu'un a une idée?
        0
        1. 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
          1. quelqu'un aurait une idée pour resoudre le probleme?
            0