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 :

Boucle et affichage de résultats


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 181
    Par défaut Boucle et affichage de résultats
    Bonjour,

    Pourriez-vous m'aider sur une chose simple je pense,
    Je n'arrive pas à trouver la logique du code PHP à créer pour afficher un résultat de ce genre :

    4 ordinateurs HP HP PRO 6000 (le 4 venant d'un GROUP BY comptant le nombre de lignes, j'affiche la désignation)

    A ce niveau pas de problème, mais je sais pas où créer ma boucle PHP pour afficher les numéros de série de ce matériel juste en dessus.
    - CZC778544
    - CZC856888
    - CZC874555
    - CZC742265

    Si je fais un code tout bête sans GROUP BY j'aurais çà par exemple venant de ma base :

    HP HP PRO 6000 CZC778544
    HP HP PRO 6000 CZC856888
    HP HP PRO 6000 CZC874555
    HP HP PRO 6000 CZC742265

    et je souhaiterai afficher cela :

    4 HP HP PRO 6000
    CZC778544
    CZC856888
    CZC874555
    CZC742265

    Merci à vous
    Nicolas

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Classe d'abord tes données par modele et parcoure le tableau obtenu pour l'affichage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
       $data[$row['modele']][] = $row['serialnumber'];
    }
     
    foreach($data as $modele=>$numbers) {
       echo count($numbers) . ' ' . $modele . '<br/>';
       foreach($numbers as $serialnumber) {
          echo $serialnumber . '<br/>';
       }
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 181
    Par défaut
    Merci beaucoup sabotage, je vais essayer.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 181
    Par défaut
    Voilà je suis en plein test, mais il ne m'affiche rien, uniquement ceci :

    Notice: Undefined variable: data in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\vsdm\test.php on line 17
    Warning: Invalid argument supplied for foreach() in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\vsdm\test.php on line 17
    pour cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach($data as $materiel=>$numbers) {
    Merci pour l'aide

    Voici le code :

    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
    <?php
    try
    {
    	$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
    }
    catch(Exception $e)
    {
            die('Erreur : '.$e->getMessage());
    }
     
    $sth = $bdd->prepare("SELECT * FROM test where localisation='test1'");
     
    while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
       $data[$row['materiel']][] = $row['sn'];
    }
     
     
    foreach($data as $materiel=>$numbers) {
       echo count($numbers) . ' ' . $materiel . '<br/>';
       foreach($numbers as $sn) {
          echo $sn . '<br/>';
       }
    }
     
    ?>

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    C'est query() et pas prepare().
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 181
    Par défaut
    Ah merci ! J'ai modifié, maintenant j'ai ça :

    Fatal error: Call to a member function fetch() on a non-object in
    sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while ($row = $sth->fetch(PDO::FETCH_ASSOC))
    désolé, je ne maitrise pas bien, ça fait 10 ans que je dis çà :/

Discussions similaires

  1. Réponses: 5
    Dernier message: 30/06/2008, 15h43
  2. [MySQL] Affichage de résultats issus d'une boucle sur un switch
    Par Micaunprobzo dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/09/2007, 12h45
  3. Affichage des résultats d'un moteur de recherche
    Par poah dans le forum Langage
    Réponses: 1
    Dernier message: 24/11/2005, 15h31
  4. Affichage du résultat
    Par thomas_strass dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 24/07/2005, 12h30
  5. [VB.NET] Boucle d'affichage
    Par 3Dos dans le forum ASP.NET
    Réponses: 2
    Dernier message: 18/02/2005, 13h53

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