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 :

Resultat sql en ligne


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 59
    Par défaut Resultat sql en ligne
    Bonjour,
    Après avoir fait une demande sur le forum sql, on m'a conseillé d'effectuer ce travail de cosmétique dans le langage de mon dev.

    Je souhaite faire afficher la liste des colonnes en ligne. Voici ma requete :


    Et donc je voudrais obtenir quelque chose comme ça :


    J'ai passé une après midi sur le problème, mais j'ai du mal a trouver un bon algo.

    Le mieux serait-il de faire plusieurs requete sql ou de travailler sur le premier résultat qui est sous la forme d'un ArrayObj?

    Merci à vous

  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
    Un truc comme ça :
    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
     
    // recolte les valeurs
    while ($row=mysql_fetch_assoc($sql)) {
    if (!in_array($row['caracteristique'], $tblCaracteristiques)) {  $tblCaracteristiques[] = $row['caracteristique']; }
     
    $tblEquipements[$row['Nom_equipement']][$row['caracteristique']] = $row['valeur'];
    }
     
    //affiche le resultat
    echo '<table>';
    foreach ($tblEquipements as $nom => valeurs) {
    echo '<tr><td>' . $nom .'</td>';
    foreach ($tblCaracteristiques as $caracteristique) {
    echo '<td>' . (isset($valeurs[$caracteristique)) ? $valeurs[$caracteristique) : ''  . '</td>';
    }
    echo '</tr>';
    }
    echo '</table>';
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 59
    Par défaut
    Houa merci, je vais regarder ca, et essayer de l'adapter à ma bd et de le comprendre. parce que je suis sur sql server en pdo.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 59
    Par défaut
    J'ai fais ca mais je doute que le code ne soit pas très optimisé.
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    $iterator =new RecursiveArrayIterator(new ArrayObject($arrayObj));
        /*** traverse the $iterator object ***/
     
     
        while($iterator->valid())
        {
            $iteratorbis = new RecursiveArrayIterator($iterator->current());
     
     
            if ($iterator->key()!=0)
            {
     
                 foreach($iteratorbis as $keys=>$values)
                {
                    if ($keys == "Caracteristique" AND !in_array($values, $tblCaracteristiques))
                    {
                        $caract = $values;
                        $tblCaracteristiques[] = $values;
                    }
                    if ($keys == 'Type'){
                        $type = $values;
                    }
                    if ($keys == 'Nom_equipement'){
                        $nom = $values;
                    }
                    if ($keys == 'Valeur'){
                        $valeur = $values;
                    }
     
                }
                $tblEquipements[$type][$nom][$caract] = $valeur;
                $tblTypes[$type][$caract]=$caract;
     
            }
     
            $iterator->next();
        }
     
        /*Parcours de la table de tous les type associé aux caractéristiques*/
        foreach ($tblTypes as $type => $valeur){
            /* Creation d'un table par type*/
            echo"<table class=\"donnees\" border=\"1\" cellspacing=\"1\">";
            echo '<thead><tr><td></td>';
            /*Affichage des caractéristiques sur une ligne*/
            foreach ($valeur as $carac )
                {
                  echo "<th>$carac</th>";
                }
            echo "</tr></thead>";
            /* Affichage du nom de l'equipement et des valeurs associé au caractéristique*/
            foreach ($tblEquipements[$type] as $nom => $valeurs)
            {
                echo '<tr><td>';
                echo "$nom</td>";
     
                foreach ($tblTypes[$type] as $cacracteristique)
                {
                    if (isset($valeurs[$cacracteristique])){
                          echo '<td>' .  $valeurs[$cacracteristique] .'</td>';
                        }
                        else{
                            echo '<td>&nbsp;</td>';
                    }
                 }
            }
            echo "</tr>";
     
            echo "</table>";
        }
     
    }

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

Discussions similaires

  1. colorier ligne d'un tableau en fonction du resultat sql
    Par lnikolanta dans le forum Langage
    Réponses: 5
    Dernier message: 18/06/2009, 13h14
  2. [SQL] afficher resultat sql dans un tableau html
    Par digger dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 20/06/2006, 11h06
  3. [FireBird] Limiter le résultat à 1 ligne
    Par engi dans le forum Langage SQL
    Réponses: 6
    Dernier message: 16/05/2006, 20h55
  4. sql en ligne de commande
    Par meufeu dans le forum Requêtes
    Réponses: 4
    Dernier message: 13/04/2005, 13h39
  5. [debutant] PBL variable resultat & sql dynamic
    Par DaxTaz dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/06/2004, 09h44

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