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 :

tri de colonne dynamique avec données sql [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 38
    Par défaut tri de colonne dynamique avec données sql
    Bonjour à tous,

    mon problème est le suivant :

    voici mon code de base de création de mon tableau et récupération des données SQL :

    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
     
     
    <html>
    <body>
     
    <!-- Création des entêtes de colonne -->
    <table class='annuaire'>
    <tr> 
    <th>Numéro inventaire</th>
    <th>Type de matériel</th>
    <th>Responsable</th>
    </tr>
     
    <?php
     
    #Connexion à la base de données
     
    $liendb = mysql_connect("localhost", "root", "");
    mysql_select_db ("metrologie", $liendb);
     
    # Sélection
     
    $sql = "SELECT * FROM materiel ORDER BY num_inventaire";
    $resultat = mysql_query ($sql);
     
    while ($metro = mysql_fetch_array ($resultat)) {
     
       #Récupération des données.
     
       $num_inventaire = $metro['num_inventaire'];
       $type_materiel = $metro['type_materiel'];
       $responsable = $metro['responsable'];
     
       #Impression des données.
     
        print "<td>".$metro['date_controle']."</td>";
        print "<td>".$metro['date_prochain_controle']."</td>";
        print "<td>".$metro['conforme']."</td>";
     
    }
     
    print "</table>";
     
    #Fermeture de la base de donnée        
    mysql_close($liendb);
     
    ?>
    </body>
    </html>

    Code pour le tri colonne dynamique (extrait) :

    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
     
    <html>
    <body>
     
    <!-- Création des entêtes de colonne -->
    <table class='annuaire'>
    <tr> 
    <?php print "<th><a href='metrologie.php?tri=num_inventaire'>Numéro inventaire</a></th>";?>
    <?php print "<th><a href='metrologie.php?tri=type_materiel'>Type de matériel</a></th>";?>
    <th>Responsable</th>
    </tr>
     
    <?php
    #Connexion à la base de données
     
    $liendb = mysql_connect("localhost", "root", "");
    mysql_select_db ("metrologie", $liendb);
     
    # Sélection
     
    $tri = "num_inventaire"; #par défaut
    $sql = "SELECT * FROM materiel ORDER BY" .$tri;
    $resultat = mysql_query ($sql);
     
    while ($metro = mysql_fetch_array ($resultat)) {
     
       #Récupération des données.
     
       $num_inventaire = $metro['num_inventaire'];
       $type_materiel = $metro['type_materiel'];
       $responsable = $metro['responsable'];
     
       #Impression des données.
     
        print "<td>".$metro['date_controle']."</td>";
        print "<td>".$metro['date_prochain_controle']."</td>";
        print "<td>".$metro['conforme']."</td>";
     
    }
     
    print "</table>";
     
    #Fermeture de la base de donnée        
    mysql_close($liendb);
     
    ?>
    </body>
    </html>
    je ne comprend pas pourquoi ç ne fonctionne pas ...

  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
    Par défaut
    Et qu'est-ce qui ne fonctionne pas ? Rien ne s'affiche ? Ou ça s'affiche pas comme tu veux ? Tu as une erreur ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 38
    Par défaut
    En fait rien j'ai bien le link sur mes colonnes avec mes résultats mais le lien "tri" ne fonctionne pas.
    Pas de message d'erreur...

    Nom : Capturer.JPG
Affichages : 526
Taille : 19,9 Ko

  4. #4
    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
    Par défaut
    A première vue il te manque un espace après le ORDER BY de ta requête.

    Et vu le code $tri vaudra toujours la même chose "num_inventaire" donc le tri sera toujours le même quelque soit le lien. Il faut que tu vires ton tri par défaut, ou plutôt que tu testes au prélable si $_GET['tri'] existe ou pas.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(isset($_GET['tri']))
       $tri = $_GET['tri'];
    else
       $tri = "num_inventaire";
    $sql = "SELECT * FROM materiel ORDER BY " .$tri;
    quelque chose dans le genre

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 38
    Par défaut
    Merci beaucoup,

    pour l'espace et $_GET['tri'] ça fonctionne cependant au démarrage de ma page j'ai :

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

    Puis quand je clic sur un colonne ça fonctionne.

    Pourtant j'ai bien initialisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if(isset($_GET['tri']))
       $tri = $_GET['tri'];
    else
       $tri = "num_inventaire";
       $sql = "SELECT * FROM materiel ".$clause." ORDER BY ".$_GET['tri'];
       $resultat = mysql_query ($sql);

  6. #6
    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
    Par défaut
    Euh c'est quoi $clause ?

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 453
    Par défaut
    Citation Envoyé par Kiwix Voir le message
    Merci beaucoup,

    pour l'espace et $_GET['tri'] ça fonctionne cependant au démarrage de ma page j'ai :

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

    Puis quand je clic sur un colonne ça fonctionne.

    Pourtant j'ai bien initialisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if(isset($_GET['tri']))
       $tri = $_GET['tri'];
    else
       $tri = "num_inventaire";
       $sql = "SELECT * FROM materiel ".$clause." ORDER BY ".$_GET['tri'];
       $resultat = mysql_query ($sql);
    C'est une petite étourderie

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql = "SELECT * FROM materiel ".$clause." ORDER BY ".$tri;

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

Discussions similaires

  1. colonne dynamique avec ireport
    Par ouedmouss dans le forum iReport
    Réponses: 8
    Dernier message: 04/02/2013, 23h07
  2. [MySQL] Menu déroulant avec données sql
    Par matt38 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 08/08/2012, 23h40
  3. [SQL] Limiter taille tableau html construit avec données sql
    Par syl2042 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/09/2007, 15h23
  4. Réponses: 2
    Dernier message: 17/11/2006, 07h29
  5. [MySQL] Problème affichage tableau PHP avec données SQL
    Par akalaan dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/04/2006, 14h34

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