IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

affichage du résultat d'une requete dans une page


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 94
    Points : 40
    Points
    40
    Par défaut affichage du résultat d'une requete dans une page
    bonjour tt le m
    regarder ce code :
    ?
    include("conn.php");
    $result=mysql_query("select * from enseignant group by specialite");while($row1=mysql_fetch_array($result)) {
    echo "<table border= 1 width =100%>

    <tr bgcolor=#0099FF>
    <td width=20><fontcolor=#FFFFFF><b><i>Spécialité</b></i></font></td>
    <td width=35%><font color=#FFFFFF><b><i>".$row1["specialite"]. "</font></td>
    </tr>
    <tr bgcolor=#CCDFF9>
    <td width=20%><font color=#000000>Nom & Prénom</font></td>
    <td width=35%><font color=#000000>".$row1["nom"]. " ".$row1["prenom"]."</font></td>
    </tr></table>
    <p>&nbsp</p>";}
    mysql_close();
    ?>

    je veux afficher le résultat de la requete dans des tableaux groupés par la
    spécialité de chaque enseigant.
    le problème que le résultat s'affiche, mais uniquement le 1er enrgistrement.

    exemple : si j'ai dans ma base de données :
    x français
    y informatique
    z informatique
    w farnçais
    m physique

    le résultat que je veux :
    informatique :
    y
    z

    français :
    x
    w

    physique :
    m

    mais lui il affiche :
    informatique :
    y

    français :
    x

    physique :
    m


    il n'affiche pas les autres enregistrements.
    comment faire ?

    merci d'avance...

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Conseils
    • N'utilise pas les guillemets doubles où ils sont inutiles.
    • Écris les mots clefs MySQL en majuscules dans tes requêtes
    • N'oublie pas de toujours faire or die(mysql_error()) après un mysql_query() :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      mysql_query('SELECT * FROM enseignant GROUP BY specialite')
         or die(mysql_query());


    [Edit]
    Concernant ton problème, à quoi correspondent les x et y ? À tes noms d'enseignants ?
    Je pense que le plus simple serait de faire 2 requêtes : une première
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT specialite FROM enseignant;
    Puis tu boucles dans les résultats pour une seconde requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT nom FROM enseignant WHERE specialite = $specialite;

  3. #3
    Membre averti Avatar de XtofRoland
    Profil pro
    Inscrit en
    Août 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 357
    Points : 392
    Points
    392
    Par défaut
    il ne vaudrait pas mieux un order by?
    Le but de tout developpeur OO est de devenir une référence.
    Mon avatar est un ambigramme, les curieux peuvent le retourner ;-)
    Aider <> Faire a la place de!!!

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 30
    Points : 28
    Points
    28
    Par défaut
    la ce que tu fait c est que a chaque resultat tu construit un nouveau tableau.

    Et si t essayai pluto comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <?php
     
    $tablo = "<table>";
     
    while($row1=mysql_fetch_array($result)) {
     
         $tablo [b].=[/b] "<tr bgcolor=#0099FF>
    <td width=20><fontcolor=#FFFFFF><b><i>Spécialité</b></i></font></td>
    <td width=35%><font color=#FFFFFF><b><i>".$row1["specialite"]. "</font></td>
    </tr>
    <tr bgcolor=#CCDFF9>
    <td width=20%><font color=#000000>Nom & Prénom</font></td>
    <td width=35%><font color=#000000>".$row1["nom"]. " ".$row1["prenom"]."</font></td>
    </tr> ";
     
    }
     
    $tablo [b].=[/b] "</table>";
    echo $tablo;
    ?>

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 104
    Points : 100
    Points
    100
    Par défaut
    tu n'est pas obligé de créer une variable $tableau pour stocker le résultat puis l'afficher, tu peut faire un affichage direct, ça t'évite une variable inutile. Sinon j'aurait aussi faire la boucle comme sur le message précédent

Discussions similaires

  1. [MySQL] requete dans une table avec une varible d'une autre table
    Par kogoi dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 03/11/2011, 15h24
  2. Réponses: 2
    Dernier message: 24/10/2011, 17h15
  3. [MySQL] une requete dans une requete
    Par ots2 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 31/08/2011, 09h49
  4. Réponses: 4
    Dernier message: 02/07/2008, 11h32
  5. Utilisation d'une requete dans une requete update
    Par hellbilly dans le forum Access
    Réponses: 4
    Dernier message: 09/01/2005, 15h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo