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 :

Faire un filtre pour mes champs de mon affichage comment faire ?


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Points : 71
    Points
    71
    Par défaut Faire un filtre pour mes champs de mon affichage comment faire ?
    Bonjour, J'ai appris bcps sur les affichages, mais cependant je bloque pour faire une sorte de filtre sélection pour chaque champ. càd pourvoir faire des filtre comme sur excel pour chaque champs :

    voici les champs que souhaite pouvoir filtrer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    echo '<tr>';
            echo '<td bgcolor="#CCCCCC">'.$row['prenom'].'</td>';
            echo '<td bgcolor="#CCCCCC">'.$row['nom'].'</td>';
            echo '<td bgcolor="#CCCCCC">'.$row['titre'].'</td>';
    		echo '<td bgcolor="#CCCCCC">'.$row['phone'].'</td>';
    		echo '<td bgcolor="#CCCCCC">'.$row['email'].'</td>';
    		echo '<td bgcolor="#CCCCCC">'.$row['no'].'</td>';
    		echo '<td bgcolor="#CCCCCC">'.$row['cp'].'</td>';
    		//echo '<td bgcolor="#CCCCCC">'.$row['calcul'];
    		echo '<td';


    Ci-dessous mon php qui fonctionne très bien


    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
    72
    73
    74
    75
    <html>
     
    <head>
     
    <title>Supprimer</title>
    <link href="css/style2.css" rel="stylesheet" type="text/css">
     
    </head>
     
    <body>
     
      <?php
     
    $host = 'localhost';
    $user = 'root';
    $pass = '';
    $db = 'import';
     
     
    $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
    mysql_select_db($db) or die ('Erreur :'.mysql_error());
     
     
    $select = 'SELECT prenom,nom,titre,phone,email,no,cp FROM tfi2003_contacts ';
    $select = 'SELECT prenom,nom,titre,phone,email,no,cp,(cp-no) AS calcul FROM tfi2003_contacts ';
    $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
    $total = mysql_num_rows($result);
     
     
    // si on a récupéré un résultat on l'affiche.
    if($total) {
        // début du tableau
        echo '<table bgcolor="#FFFFFF">'."\n";
            // première ligne on affiche les titres prénom et surnom dans 2 colonnes
            echo '<tr>';
            echo '<td bgcolor="#669999"><b><u>Prénom</u></b></td>';
            echo '<td bgcolor="#669999"><b><u>nom</u></b></td>';
    		echo '<td bgcolor="#669999"><b><u>titre</u></b></td>';
            echo '<td bgcolor="#669999"><b><u>phone</u></b></td>';
    		echo '<td bgcolor="#669999"><b><u>email</u></b></td>';
    		echo '<td bgcolor="#669999"><b><u>no</u></b></td>';
    		echo '<td bgcolor="#669999"><b><u>cp</u></b></td>';
    		echo '<td bgcolor="#669999"><b><u>calcul</u></b></td>';
     
    		echo '</tr>'."\n";
        // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.    
        while($row = mysql_fetch_array($result)) {
            echo '<tr>';
            echo '<td bgcolor="#CCCCCC">'.$row['prenom'].'</td>';
            echo '<td bgcolor="#CCCCCC">'.$row['nom'].'</td>';
            echo '<td bgcolor="#CCCCCC">'.$row['titre'].'</td>';
    		echo '<td bgcolor="#CCCCCC">'.$row['phone'].'</td>';
    		echo '<td bgcolor="#CCCCCC">'.$row['email'].'</td>';
    		echo '<td bgcolor="#CCCCCC">'.$row['no'].'</td>';
    		echo '<td bgcolor="#CCCCCC">'.$row['cp'].'</td>';
    		//echo '<td bgcolor="#CCCCCC">'.$row['calcul'];
    		echo '<td'; 
    		if($row['calcul']>=50 && $row['calcul']<=100){ echo ' bgcolor="#ffcc66"'; } else { echo ' bgcolor="#CCCCCC"'; }
    		echo'>'.$row['calcul'].'</td>';
     
    		echo '</tr>'."\n";
        }
        echo '</table>'."\n";
        // fin du tableau.
    }
    else echo 'Pas d\'enregistrements dans cette table...';
     
    // on libère le résultat
    mysql_free_result($result);
     
    ?>
     
    </body>
     
    </html>

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    tu nous montre un affichage dans une <table> !

    Que veux-tu dire par filtrer ??
    A quel moment ?

    By the way...
    Tu n'as pas remarqué que tu trainais une ligne en trop depuis belle lurette ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $select = 'SELECT prenom,nom,titre,phone,email,no,cp FROM tfi2003_contacts ';
    $select = 'SELECT prenom,nom,titre,phone,email,no,cp,(cp-no) AS calcul FROM tfi2003_contacts ';
    Et tu traines toujours ton vieux code tout moisi...
    => ET LE CODE que je t'avais ECRIT SPECIALEMENT pour toi ICI ?

    C'est bien gentil de poser des questions sur le forum.
    Encore faudrait-il tenir compte des réponses !
    Sinon, on va se lasser...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Points : 71
    Points
    71
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Que veux-tu dire par filtrer ??
    A quel moment ?
    --> comme exemple explicite avec excel possibilité de faire un filtre sur les champs du formulaire et cocher la sélection des champs.

    --> le style : sous forme de liste déroulante tt les résultats (possibilité de cocher et filtrer les éléments appartenant au champs sélectionnés).


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tu n'as pas remarqué que tu trainais une ligne en trop depuis belle lurette ?
    oui merci pour l'info mais celui-ci que j'ai mis en évidence n'est juste que mon brouillon pour m’entraîner.

    Merci pour l'info et pour votre aide

  4. #4
    Invité
    Invité(e)
    Par défaut
    "brouillon" ne veut pas dire "torchon".

    => Écrire "proprement" son code fait AUSSI partie de l'apprentissage.

    Léonard de Vinci aussi faisait des brouillons ! Ça avait une autre allure !

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    Je crois que quand tu parle de champs en faite le bon terme est cellule ( et oui c'est de l'affichage tableau [colonne|ligne|cellule]).

    Ensuite je rejoins jreaux62 dans le sens ou ton histoire de filtre n'est pas très clair non plus, par exemple avec open Office tu a les filtres et les tris,ce n'est pas la même chose.

    Donc si je comprends bien tu veux pouvoir filtrer toutes les lignes dont le cp est égal à 75001 ou contient 75 par exemple ?
    Conception / Dev

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Points : 71
    Points
    71
    Par défaut
    Avec plus de détail se serait laisser la possibilité aux utilisateurs qui se connecte sur le formulaire de pouvoir trier de leurs choix suivant une liste déroulante sur chaque champs en entête.

    Voici un exemple en pièce jointe.
    Fichiers attachés Fichiers attachés

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    De mon point de vue, ce n'est pas le sujet le plus facile pour apprendre php, mais il vrai que c'est un sujet très complet.

    Je te conseil tout de même de te recentrer sur une méthode pas à pas, fixe toi un objectif, pose le sur papier, fait quelques recherches et demande toi finalement si le projet n'est pas trop ambitieux.

    Pour la parti complète php, c'est vrai que cela va t'appendre à bien connaître le typage des variables, savoir comment on peu les trier par exemple avec les fonctions php. Tu devra aussi construire une architecture de fichier, surement mvc. Je penses aussi au variables prédéfinies ($_SESSION , $_GET, $_POST ), leurs portées et leurs traitements à connaître par cœur.(Bon j'en passe)

    Pour la parti visuelle, il faut bien sur que tu te mettes au css, et surement en profiter pour découvrir html5.

    Et ultérieurement pour le confort interaction avec le client, te pencher sur javascript (jquery etc..)

    Finalement, pense tu pouvoir rassembler toutes ses qualités ensemble, ou peu être juste découper le gros projet en section :

    1) faire une page HTML / css
    2) Intégrer un tableau provenant d'une bdd, et le mettre en forme
    3) Prévoir un espace dans cette page pour intégrer un système de filtre et de tri via un formulaire
    4) Réfléchir à comment on tri les données
    5) Faire des tests, lire la doc php sur les typages, les fonctions sur les variables etc....
    6) appliquer cela à ton projet ( crédible ou pas ), comment je dois ranger mes fichiers et mes fonctions dans mon arborescence de site pour pouvoir les réutiliser sur un autre projet
    7) revenir de temps en temps, pour nous dire CA MARCHE
    8) Beaucoup de gens qui sont ici sont autodidacte, alors moi je te souhaite bon courage
    Conception / Dev

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Debutant10 Voir le message
    ...laisser la possibilité aux utilisateurs qui se connecte sur le formulaire de pouvoir trier de leurs choix suivant une liste déroulante sur chaque champs en entête.
    Voilà qui est clair.

    LE PRINCIPE :

    1/ Sur chaque entête de ton tableau, il faut un formulaire (passage de données en $_POST) ou un lien (passage de données en $_GET), au choix.
    Exemple de lien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="cette_page.php?choixtri=nom DESC">Nom</a>
    Exemple de formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form method="post" action="cette_page.php">
      <input type="hidden" name="choixtri" value="nom DESC" />
      <input type="submit" value="Nom" />
    </form>
    2/ Il s'agit de modifier la requête d'affichage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // si lien :
    $choixTri = $_GET['choixtri'];
    // si formulaire :
    $choixTri = $_POST['choixtri'];
    // requete
    $select = 'SELECT prenom,nom,titre,phone,email,no,cp,(cp-no) AS calcul FROM tfi2003_contacts ';
    // tri ?
    if($choixTri != '') {
      $select .= " ORDER BY ".$choixTri." ";
    }

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    460
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 460
    Points : 71
    Points
    71
    Par défaut
    Merci pour les informations je vais procéder tt doucement étape par étape pour avancer sur cette problématique.

Discussions similaires

  1. Comment faire des etats pour une application web ?
    Par ovh dans le forum Autres outils décisionnels
    Réponses: 6
    Dernier message: 06/07/2021, 03h25
  2. Réponses: 5
    Dernier message: 30/05/2011, 10h35
  3. trouve pas comment faire un algo pour mon programme
    Par unknoweb dans le forum Débuter avec Java
    Réponses: 21
    Dernier message: 12/04/2007, 17h17
  4. Comment faire une mirroir en temps reels de mon ecran?
    Par pointer dans le forum DirectX
    Réponses: 7
    Dernier message: 04/06/2005, 02h56
  5. faire un insert pour un champ blob
    Par tripper.dim dans le forum InterBase
    Réponses: 10
    Dernier message: 02/05/2003, 16h56

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