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 de donées issue d'un tableau


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    en formation
    Inscrit en
    Septembre 2019
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : en formation

    Informations forums :
    Inscription : Septembre 2019
    Messages : 90
    Par défaut Affichage de donées issue d'un tableau
    Bonjour
    Je continu (et bientôt) fini mon programme. Je récupère un tableau de tableau grâce à la commande PDO
    le résultat me donne un truc comme ca:
    maintennant je cherche a obtenir un affichage qui pour chaque classe les trierais par ordre croissant et afficherais le nom du sport suivie du chiffre corespondant
    exemple:
    CYCLISME 4
    ect...
    BOXE 392

    C:\wamp\www\devoir_ecole\class\sport_distrib.php:18:
    array (size=3)
    0 =>
    array (size=12)
    'ecole' => string 'ecole_A' (length=7)
    0 => string 'ecole_A' (length=7)
    'boxe' => string '392' (length=3)
    1 => string '392' (length=3)
    'football' => string '10' (length=2)
    2 => string '10' (length=2)
    'judo' => string '94' (length=2)
    3 => string '94' (length=2)
    'natation' => string '38' (length=2)
    4 => string '38' (length=2)
    'cyclisme' => string '4' (length=1)
    5 => string '4' (length=1)

    Voici le code que j'utilise :
    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
    sport_distrib.php
    <?php
     
    // selectionne les valeurs par sport trié dans l'ordre décroissant .
    $dbh = new PDO ('mysql:host=localhost;dbname=devoir-ecole', 'root', '');
    try {
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);                    
        /*Sélectionne les valeurs */
     
        $sth = $dbh->prepare("SELECT  ecole, boxe, football, judo, natation, cyclisme FROM sports");
        $sth->execute();
        $resultat = $sth->fetchAll();
        //$resultat = $sth->fetchAll(PDO::FETCH_ASSOC);// tableau de 5 tableau contenant toutes les lignes du jeu d'enregistrements 
    }  
    catch (PDOException $e) {
        echo 'Échec lors de la connexion : ' . $e->getMessage();
    } 
    var_dump($resultat);
    ?>

  2. #2
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2020
    Messages : 11
    Par défaut
    Pour trier par ordre croissant :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT  ecole, boxe, football, judo, natation, cyclisme FROM sports ORDER BY "ce que tu veux" ASC

    Pour l'affichage, il faut que tu passes par le HTML : <table></table>

  3. #3
    Membre confirmé
    Femme Profil pro
    en formation
    Inscrit en
    Septembre 2019
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : en formation

    Informations forums :
    Inscription : Septembre 2019
    Messages : 90
    Par défaut Merci de t'on aide
    Bonjour
    J'ai du mal m'exprimer:
    Dans le cas d'un tableau (SQL) je récupére la nom de la colonne et en même temps la valeur indiquer dans cette colonne.
    et j'affiche ceci:
    boxe 28
    football 2
    judo 6
    natation 2
    cyclisme 27
    voici mon programme php:
    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
    27
    28
    29
    30
    31
     
    <?php
     
    // selectionne les valeurs par sport trié dans l'ordre décroissant .
    $dbh = new PDO ('mysql:host=localhost;dbname=devoir-ecole', 'root', '');
    try {
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);                    
        /*Sélectionne les valeurs */
     
       $sth = $dbh->prepare("SELECT  boxe, football, judo, natation, cyclisme FROM sports where id=1");
        $sth->execute();
        $resultat = $sth->fetchAll();
        //$resultat = $sth->fetchAll(PDO::FETCH_ASSOC);// tableau de 5 tableau contenant toutes les lignes du jeu d'enregistrements 
    }  
    catch (PDOException $e) {
        echo 'Échec lors de la connexion : ' . $e->getMessage();
    } 
     
    foreach($resultat as $result){
    echo "<br>";
    echo("boxe") . PHP_EOL; echo($result[0]);
    echo "<br>";
    echo("football") . PHP_EOL; echo($result[1]);
    echo "<br>";
    echo("judo") . PHP_EOL; echo($result[2]);
    echo "<br>";
    echo("natation") . PHP_EOL; echo($result[3]);
    echo "<br>";
    echo("cyclisme") . PHP_EOL; echo($result[4]);
    }
    ?>
    Cerise sur le gâteau il faut que ce soit par ordre croissant des valeurs donc de $result[*];.

    merci à ceux qui voudrons bien m'aider

  4. #4
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    On ne comprend toujours rien.
    Donne deux ou trois exemples concrets, ça sera bien plus clair.
    Tu parles de classes, de sports, de scores... J'imagine qu'il y a des cumuls (group by) ? C'est peut-être ça qui te coince ?
    Bref, exemples. Et pourquoi tu mets des numériques en string, ça m'échappe ?
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  5. #5
    Membre confirmé
    Femme Profil pro
    en formation
    Inscrit en
    Septembre 2019
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : en formation

    Informations forums :
    Inscription : Septembre 2019
    Messages : 90
    Par défaut Bon je reprends ma copie
    Restituer la liste des écoles en affichant pour chacune :
    la liste des activités sportives pratiquées classées par ordre croissant en fonction du nombre d’élèves qui les pratiquent et en précisant ce nombre pour chacune des activités.
    Donc pour ce faire j'ai créer un générateur qui crée donc les nombres:
    MA base de donnée SQL, est comme ceci:

    id ecole boxe football judo natation cyclisme
    1 ecole_A 83 3 0 2 84
    2 ecole_B 389 33 1 4 10
    3 ecole_C 24 1 7 2 2

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    <?php
    $result=1;
     
    while ($result <=3) {
     $nb_eleves= mt_rand(1, 500);
     $nb_sportif= mt_rand(1, $nb_eleves);
     $nb_sportifs=$nb_sportif;
     
        $licences="0";
        while ($nb_sportif >=0 ){    
            $nb_sport= mt_rand(1, 3);// choix du nombre de sport  
            $licences=($nb_sport + $licences);// on donne un nombre de licences par sportif
            $nb_sportif --;                       
        }
     
        $dbh = new PDO ('mysql:host=localhost;dbname=devoir-ecole', 'root', '');
        $dbh->query("UPDATE ecoles SET nb_eleves='$nb_eleves',nb_sport='$nb_sportifs',licences='$licences' WHERE id='$result'");
        $result++;   
    } 
     
     
        // creation des 5 valeurs dans la base de données sport ( a partir de $distribution)
        $id=1;
        while ($id <=3) {
            $dbh = new PDO ('mysql:host=localhost;dbname=devoir-ecole', 'root', '');
            $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);                    
            $sth = $dbh->prepare("SELECT  licences FROM ecoles WHERE id=$id");
            $sth->execute();
            $distrib = $sth->fetchAll(PDO::FETCH_ASSOC);
            //tableau de tableau
     
            foreach($distrib as $delivery){
            $distribution=$delivery['licences'];            
            $boxe=mt_rand(0, $distribution);
            $cyclisme=mt_rand(0, ($distribution - $boxe));
            $judo=mt_rand(0, ($distribution - ($cyclisme + $boxe)));
            $football=mt_rand(0, ($distribution - ($cyclisme+$boxe+$judo)));
            $natation=($distribution - ($cyclisme+$boxe+$judo+$football));
            $dbh->query("UPDATE sports SET boxe='$boxe', football='$football', judo='$judo', natation='$natation', cyclisme='$cyclisme' WHERE id='$id'");
     
            $id++;
     
            }
        }
     
    ?>
    Puis un second fichier qui lui récupère les valeurs et le nom des colonnes. Les classes par classes.
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <?php
     
    // selectionne les valeurs par sport trié dans l'ordre décroissant .
    $dbh = new PDO ('mysql:host=localhost;dbname=devoir-ecole', 'root', '');
     
    $id=1;
    while ($id <= 3)  { 
    try {
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);                    
        /*Sélectionne les valeurs */
     
       $sth = $dbh->prepare("SELECT  boxe, football, judo, natation, cyclisme FROM sports where id=$id");
        $sth->execute();
        $resultat = $sth->fetchAll();
     
    }  
    catch (PDOException $e) {
        echo 'Échec lors de la connexion : ' . $e->getMessage();
    } 
     
    if ($id === 1) {
            $ecole_a=($resultat);       
        }
     
        if ($id === 2) {
            $ecole_b=$resultat;       
        }     
     
        if ($id === 3) {
            $ecole_c=$resultat;
        }
     
        $id++;
    }
    ?>
    Le résultat à l'affichage est:
    Nombre d'éleves :383

    Nombre d'éleves avec au moins 1 sport : 217

    Nombre de sport pratiqués : 437

    Nombre de pratiquants par sports :

    boxe 389
    football 33
    judo 1
    natation 4
    cyclisme 10
    Maintenant Je voudrais que soit trié par ordre croissant les cinq lignes du bas

    comme ceci:
    judo 1
    natation 4
    cyclisme 10
    football 33
    boxe 389
    Voila bon courage à ceux et celles qui voudrons bien m'aider.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Affichage de données issues de MYSQL dans un tableau
    Par zazou123 dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 03/07/2019, 12h10
  2. [PostgreSQL] tableau html et affichage des données issues d'une requête PostgreSQL
    Par Leehan dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 12/06/2019, 15h54
  3. Réponses: 0
    Dernier message: 27/02/2013, 13h01
  4. Réponses: 4
    Dernier message: 11/07/2006, 22h58
  5. Probleme d'affichage d'un element d'un tableau
    Par l_seringa dans le forum C
    Réponses: 17
    Dernier message: 05/04/2006, 15h12

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