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

Langage PHP Discussion :

[Tableaux] Affichage et classement des données MySql en HTML avec PHP


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 22
    Points : 16
    Points
    16
    Par défaut [Tableaux] Affichage et classement des données MySql en HTML avec PHP
    Bonjour je souhaiterais faire un script pour afficher des données issues d'une table MySql mais je bloque sur le résultat renvoyé par les requêtes et l'algorithme
    en php. Voici en gros comment se présente la table (L'aspect relationnel n'est pas proposé chez l'hébergeur)
    Table pages
    ########################################
    id Catégorie # url de la page
    0 A # page1.html
    1 A # page2.html
    2 A # page3.html
    3 B # page4.html
    4 B # page5.html
    5 C # page6.html
    6 C # page7.html
    7 C # page8.html
    #########################################
    Je souhaite dans une page html afficher d'abord la catégorie puis la liste des url des pages lui appartenant exemple

    Catégorie A
    page1.html
    page2.html
    page3.html

    Catégorie B
    page4.html
    page5.html

    Dans chaque catégorie mentionnée on aura la liste des pages s'y rapportant
    Pour cela j'ai élaboré le script suivant
    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
    22
    23
    24
    25
    26
     
    <?
    $link = mysql_connect("server_url","db","pwd") or die ("Impossible de se connecter");
    mysql_select_db ("db") or die ("Impossible d'accéder à la base de données");
    $query="SELECT DISTINCT catégorie FROM pages ORDER BY catégorie";
    #Chaque enregistrement est unique ne souhaite l'avoir qu'une fois sur la page html
    $result=mysql_query($query);
    $val=mysql_fetch_array($result);
    $query1="SELECT * FROM `pages` WHERE `Catégorie` = '$val[catégorie]'";
    # cette requête retourne la liste des url de pages appartenant à la catégorie , obtenue avec la 1ère requête 
    $result1=mysql_query($query1);
    $val1=mysql_fetch_array($result1);
    while ($val=mysql_fetch_array($result)) {
    echo "<hr>";
    echo $val["catégorie"] ;
    #on affiche les catégories et on saute des lignes, ça, ça marche 
    while ($val1=mysql_fetch_array($result1)){
    #là on récupère les données répondant à la valeur obtenue avec la requete1 et la boucle imbriquée se charge de les afficher avec retour à la ligne 
    echo $val1["url de la page"] ;
    echo "<br>";
    }
    echo "<br><br>";
    }
    mysql_free_result($result);
    mysql_close($link);
    ?>
    Le problème est que je n'obtiens qu'un enregistrement d'url de page aprés l'affichage de la 1ère catégorie . Pouvez vous me dire ce que je peux faire pour régler le problème? Adopter une autre syntaxe un autre code changer la requête? Merci d'avance de votre réponse.

  2. #2
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Salut, tu as un problème avec tes boucles.
    Je te propose ça (pas testé) :

    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
    22
    <?
    $link = mysql_connect("server_url","db","pwd") or die ("Impossible de se connecter");
    mysql_select_db ("db") or die ("Impossible d'accéder à la base de données");
     
    $queryCategorie = "SELECT DISTINCT catégorie FROM pages ORDER BY catégorie";
    $resCategorie = mysql_query($queryCategorie);
     
    while($valCategorie = mysql_fetch_array($result1))
    {
       echo "<hr>";
       echo $valCategorie ['catégorie'] ;
     
       $queryPages="SELECT * FROM `pages` WHERE `Catégorie` = '$valCategorie[catégorie]'";
       $resPages = mysql_query($queryPages);
     
       while($valPages=mysql_fetch_array($resPages))
       {
          echo $valPages["url de la page"] ;
          echo "<br>";
       }
       echo "<br><br>";
    }
    PS : les accents dans les noms de champs c'est mal, les espaces c'est très mal...
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

Discussions similaires

  1. [MySQL] Affichage par php des données mysql dans un tableau html
    Par JDP91 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 17/05/2015, 09h10
  2. Affichage des données Mysql
    Par mizow dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 24/04/2012, 12h23
  3. [MySQL] affichage des données dans un tableau avec mysql et php
    Par fofina dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/10/2007, 14h00
  4. Réponses: 4
    Dernier message: 05/12/2006, 20h13
  5. Envoyer des données mysql vers Excel
    Par thierry198 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 09/11/2005, 19h59

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