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 une liste des membres ! + trier par ordre !


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 1
    Points
    1
    Par défaut Faire une liste des membres ! + trier par ordre !
    Salut tout le monde, je voudrais des indications pour faire une page de liste des membres. J'ai coder mon formulaire, comme je le voulais... mais pour la partie php, je ne c'est vraiment pas comment faire.

    Code html : 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
    <form action="memberlist.php" method="post">
    <fieldset>
    <legend>Rechercher des membres</legend>
     
    <label for="pseudo">Pseudo :</label> 
    <input type="text" name="pseudo" id="pseudo" /> <br />
     
    <label for="tri" class="label_cote">Trier par...</label> 
    <select name="tri" id="tri">
    <option value="mbr_pseudo" selected="selected">Pseudo</option>
    <option value="mbr_id">ID de membre</option>
    <option value="mbr_date_insc">Date d'inscriptions</option>
    <option value="mbr_groupe">Groupe</option>
    </select><br />
     
    <label for="ordre">Ordre...</label> 
    <select name="ordre" id="ordre">
    <option value="asc" selected="selected">Croissant</option>
    <option value="desc">Décroissant</option>
    </select><br />
     
    <label for="groupe">Groupe :</label> 
    <select name="groupe" id="groupe">
    <option value="1">Admins</option>
    <option value="2">Bannis</option>
    <option value="3">Scripteurs</option>
    <option value="4">Moderateurs</option>
    <option value="5">Newser</option>
    <option value="6">Validateurs</option>
    <option value="0" selected="selected">Tous les groupes</option>
    </select><br />
     
    <input type="submit" value="Rechercher" name="recherche" id="recherche" />
    </fieldset>
    </form>

    Comme vous le voyez, je voudrais pouvoir trier les membres, par ordre croissant où décroissant. Pouvoir rechercher ceux qui ont un rang spéciale, etc...

    Si vous pouviez m'aider, vous serez super sympas
    Merci !

  2. #2
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Points : 878
    Points
    878
    Par défaut
    Salut,

    Ca dépend de l'origine de tes données, mais là j'imagine que ça vient d'une base de données, donc :

    - tout d'abord tu étudie les paramètres envoyées à ta page memberlist.php
    - puis tu les protège
    - enfin tu crée une requête à envoyer à ta base, avec ces critères

    Ex:
    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
     
    //
    // vérifier l'envoi des informations
    //
    if( !$_POST['tri']
    || !$_POST['ordre']
    || !$_POST['groupe']
    ) { return false; }
     
    //
    // protéger un minimum des injections
    //
    $tri = mysql_escape_string($_POST['tri']);
    $ordre= mysql_escape_string($_POST['ordre']);
    $groupe= mysql_escape_string($_POST['groupe']);
     
    //
    // créer la requête SQL
    //
    $sql = "SELECT * FROM `base_user` WHERE `groupe` = '$groupe' ORDER BY '$ordre' $tri;";
     
    // ensuite il suffit de traiter chaque valeur retour de la base, normalement. Le tri se fait dans le code SQL
    Le code n'est pas forcément exact, mais tu auras une idée comme ça

    Bon courage !
    Zend PHP Certified Engineer, Certifié Symfony2
    blog : blog.lepine.pro
    Secrétaire de l'AFUP (Association des Utilisateurs de PHP)

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Bonjour, est merci pour ta réponse.
    Mais, j'ai une erreur à la ligne 80 !

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Documents and Settings\Administrateur\Bureau\Webmascript\memberlist.php on line 80
    Mon 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
     
    <?php
    if (isset($_POST['pseudo']) AND isset($_POST['tri']) AND isset($_POST['ordre']) AND isset($_POST['groupe']))
    {
        $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
    	$tri = mysql_escape_string($_POST['tri']);
    	$ordre = mysql_escape_string($_POST['ordre']);
    	$groupe = mysql_escape_string($_POST['groupe']);
     
     
    $retour = mysql_query('SELECT * FROM forum_membres WHERE `pseudo` = '.$pseudo.' AND `groupe` = '.$groupe.' ORDER BY '.$ordre.' '.$tri.'');
    while ($tt_membres = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
    { //Debut de la boucle
    echo'
    <tr>
    <td>'.date('d/m/Y', $tt_membres['membre_inscrit']).'</td>
    <td>'.$tt_membres['membre_id'].'</td>
    <td>'.$tt_membres['membre_pseudo'].'</td>
    <td>'.$tt_membres['membre_rang'].'</td>
    </tr>
    </table>';
    } //Fin de la boucle
    }
    ?>
    Merci.

  4. #4
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Il doit manquer des guillemets dans ta requete.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $retour = mysql_query('SELECT * FROM forum_membres WHERE pseudo = "'.$pseudo.'" AND groupe = "'.$groupe.'" ORDER BY '.$ordre.' '.$tri.'') or exit(mysql_error());
    afficher les erreurs sql est une bonne idée en developpement
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    J'ai encore une erreur :

    Erreur de syntaxe près de 'desc mbr_pseudo' à la ligne 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $retour = mysql_query('SELECT * FROM forum_membres WHERE membre_pseudo = "'.$pseudo.'" AND `groupe` = "'.$groupe.'" ORDER BY '.$ordre.' '.$tri.'') or exit(mysql_error());
    while ($tt_membres = mysql_fetch_array($retour)) // On fait une boucle pour lister

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Est-ce que par hasard $ordre ne contiendrait pas ASC (ou DESC) et $tri le champ sur lequel tu souhaites trier ? Auquel cas tu as écrit ta requête à l'envers
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
     order by champ1 asc
    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $retour = mysql_query('SELECT * FROM forum_membres WHERE membre_pseudo = "'.$pseudo.'" AND `groupe` = "'.$groupe.'" ORDER BY '.$tri.' '.$ordre.' ') or exit(mysql_error());
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Merci, il y a plus cette erreur
    Mais, le problème qu'il y a c'est que dans la requête sql, il va chercher `groupe` dans la table.

    Champ 'groupe' inconnu dans where clause
    Alors, que normalement c'est le nom du formulaire de groupe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <label for="groupe">Groupe :</label> 
    <select name="groupe" id="groupe">
    <option value="1">Admins</option>
    [...]

  8. #8
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Hum...
    En l'occurrence le message d'erreurs dit plutôt qu'il ne trouve pas de champ groupe dans la table. Quelle est la structure de forum_membres ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Voici ma table :

    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
    CREATE TABLE `forum_membres` (
      `membre_id` int(11) NOT NULL auto_increment,
      `membre_pseudo` varchar(30) character set latin1 collate latin1_general_ci NOT NULL,
      `membre_mdp` varchar(32) character set latin1 collate latin1_general_ci NOT NULL,
      `membre_email` varchar(250) character set latin1 collate latin1_general_ci NOT NULL,
      `membre_msn` varchar(250) character set latin1 collate latin1_general_ci NOT NULL,
      `membre_siteweb` varchar(100) character set latin1 collate latin1_general_ci NOT NULL,
      `membre_nom_siteweb` varchar(255) NOT NULL,
      `membre_avatar` varchar(100) character set latin1 collate latin1_general_ci NOT NULL,
      `membre_texte` varchar(200) character set latin1 collate latin1_general_ci NOT NULL,
      `membre_localisation` varchar(100) character set latin1 collate latin1_general_ci NOT NULL,
      `membre_inscrit` int(11) NOT NULL,
      `membre_derniere_visite` int(11) NOT NULL,
      `membre_rang` varchar(255) default 'Membre',
      `membre_post` int(11) NOT NULL,
      PRIMARY KEY  (`membre_id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

  10. #10
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    ben tu n'as pas de champ groupe dans ta table. Donc forcément, ta requête le trouve pas...

    Deux possibilités: soit tu as oublié de créer le champ, soit la valeur du groupe vient d'une autre table auquel cas il va falloir faire une jointure...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    J'ai essayer de remplacer groupe par membre_rang parce que dans ma table, le champ qui tient les rang est membre_rang. Il n'y a aucune erreur mais, rien ne s'affiche...


    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
    <form action="memberlist.php" method="get">
    <fieldset>
    <legend>Rechercher des membres</legend>
     
    <label for="pseudo">Pseudo :</label> 
    <input type="text" name="pseudo" id="pseudo" /> <br />
     
    <label for="tri" class="label_cote">Trier par...</label> 
    <select name="tri" id="tri">
    <option value="membre_pseudo" selected="selected">Pseudo</option>
    <option value="membre_id">ID de membre</option>
    <option value="membre_inscrit">Date d'inscriptions</option>
    <option value="membre_rang">Groupe</option>
    </select><br />
     
    <label for="ordre">Ordre...</label> 
    <select name="ordre" id="ordre">
    <option value="asc" selected="selected">Croissant</option>
    <option value="desc">Décroissant</option>
    </select><br />
     
    <label for="membre_rang">Groupe :</label> 
    <select name="membre_rang" id="membre_rang">
    <option value="1">Admins</option>
    <option value="2">Bannis</option>
    <option value="3">Scripteurs</option>
    <option value="4">Moderateurs</option>
    <option value="5">Newser</option>
    <option value="6">Validateurs</option>
    <option value="0" selected="selected">Tous les groupes</option>
    </select><br />
     
    <input type="submit" value="Rechercher" id="recherche" />
    </fieldset>
    </form>
     
     <table><tr>
    <th>Date d'inscription</th>
    <th>N°</th>
    <th>Pseudo</th>
    <th>Groupe</th>
    </tr>
     
    <?php
    include("includes/identifiants.php");
    mysql_connect($adresse, $nom, $motdepasse);
    mysql_select_db($database);
     
    if (isset($_POST['pseudo']) AND isset($_POST['tri']) AND isset($_POST['ordre']) AND isset($_POST['membre_rang']))
    {
        $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
       $tri = mysql_escape_string($_POST['tri']);
    	$ordre = mysql_escape_string($_POST['ordre']);
    	$membre_rang = mysql_escape_string($_POST['membre_rang']);
     
     
    $retour = mysql_query('SELECT * FROM forum_membres WHERE membre_pseudo = "'.$pseudo.'" AND membre_rang = "'.$membre_rang.'" ORDER BY '.$tri.' '.$ordre.' ') or exit(mysql_error());
    while ($tt_membres = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
    { //Debut de la boucle
    echo'
    <tr>
    <td>'.date('d/m/Y', $tt_membres['membre_inscrit']).'</td>
    <td>'.$tt_membres['membre_id'].'</td>
    <td>'.$tt_membres['membre_pseudo'].'</td>
    <td>'.$tt_membres['membre_rang'].'</td>
    </tr>
    </table>';
    } //Fin de la boucle
    }
    ?>

  12. #12
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sql = 'SELECT * FROM forum_membres WHERE membre_pseudo = "'.$pseudo.'" AND membre_rang = "'.$membre_rang.'" ORDER BY '.$tri.' '.$ordre;
    echo $sql;
    $retour = mysql_query($sql) or exit(mysql_error());
    Fait comme ca, tu verras a quoi ressemble la requete et tu pourras controler qu'elle doit bien renvoyer quelque chose.

    Sinon : dans ta table, membre_rang est un varchar alors que dans ton formulaire c'est un chiffre, est-ce que compares bien les memes données ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Sa y est sa marche mais les problèmes sont :

    1. On doit connaitre le pseudo & sont rang pour le chercher
    2. On ne peut pas chercher tout le monde
    3. On peut mettre plusieurs membres qui ont le même rang dans le tableaux car, on doit entrez un pseudo sinon sa marche pas !


    Je dois obligatoirement entrez un pseudo pour pouvoir chercher.

    J'ai changer tout mon code avec vos corrections.

    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
    <form action="memberlist.php" method="post">
    <fieldset>
    <legend>Rechercher des membres</legend>
     
    <label for="pseudo">Pseudo :</label> 
    <input type="text" name="pseudo" id="pseudo" /> <br />
     
    <label for="tri" class="label_cote">Trier par...</label> 
    <select name="tri" id="tri">
    <option value="membre_pseudo" selected="selected">Pseudo</option>
    <option value="membre_id">ID de membre</option>
    <option value="membre_inscrit">Date d'inscriptions</option>
    <option value="membre_rang">Groupe</option>
    </select><br />
     
    <label for="ordre">Ordre...</label> 
    <select name="ordre" id="ordre">
    <option value="asc" selected="selected">Croissant</option>
    <option value="desc">Décroissant</option>
    </select><br />
     
    <label for="membre_rang">Groupe :</label> 
    <select name="membre_rang" id="membre_rang">
    <option value="Admin">Admins</option>
    <option value="Bannis">Bannis</option>
    <option value="Scripteurs">Scripteurs</option>
    <option value="Moderateurs">Moderateurs</option>
    <option value="Newser">Newser</option>
    <option value="Validateurs">Validateurs</option>
    <option value="Admin,Scripteurs,Moderateurs,Newser,Validateurs" selected="selected">Tous les groupes spéciale</option>
    </select><br />
     
    <input type="submit" value="Rechercher" id="recherche" />
    </fieldset>
    </form>
     
     <table><tr>
    <th>Date d'inscription</th>
    <th>N°</th>
    <th>Pseudo</th>
    <th>Groupe</th>
    </tr>
     
    <?php
    include("includes/identifiants.php");
    mysql_connect($adresse, $nom, $motdepasse);
    mysql_select_db($database);
     
    if (isset($_POST['pseudo']) AND isset($_POST['tri']) AND isset($_POST['ordre']) AND isset($_POST['membre_rang']))
    {
        $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
       $tri = mysql_escape_string($_POST['tri']);
    	$ordre = mysql_escape_string($_POST['ordre']);
    	$membre_rang = mysql_escape_string($_POST['membre_rang']);
     
     
    $sql = 'SELECT * FROM forum_membres WHERE membre_pseudo = "'.$pseudo.'" AND membre_rang = "'.$membre_rang.'" ORDER BY '.$tri.' '.$ordre;
    echo $sql;
    $retour = mysql_query($sql) or exit(mysql_error());
    while ($tt_membres = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
    { //Debut de la boucle
    echo'
    <tr>
    <td>'.date('d/m/Y', $tt_membres['membre_inscrit']).'</td>
    <td>'.$tt_membres['membre_id'].'</td>
    <td>'.$tt_membres['membre_pseudo'].'</td>
    <td>'.$tt_membres['membre_rang'].'</td>
    </tr>
    </table>';
    } //Fin de la boucle
    }
    ?>
    Voici par exemple quand j'essaie de chercher tout les groupes spéciale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM forum_membres WHERE membre_pseudo = "" AND membre_rang = "Admin,Scripteurs,Moderateurs,Newser,Validateurs" ORDER BY membre_pseudo asc
    Vous voyez membre_pseudo est vide donc, je ne peux pas chercher des membres, mais si j'entre le bon pseudo, est le bon rang, la sa affiche tout correctement...

  14. #14
    Membre actif
    Homme Profil pro
    Programmeur Delphi
    Inscrit en
    Octobre 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Programmeur Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 183
    Points : 227
    Points
    227
    Par défaut
    Slt

    selon que tu vas encoder ou non des données, ou cocher ou non, dans ton formulaire

    tu vas tester les valeurs ds ta page php, et faire évoluer ta requête
    je veux dire : que la partie "where" (restriction) va s'agrandir selon les critères de recherche

    tu peux pour commencer pour obtenir toutes les données de ta table avoir :
    ce qui te retournera tous les tuples

    et selon les critères, ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    where 1=1
    and membre_pseudo like '%val%'

  15. #15
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    J'ai rien compris

  16. #16
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    je vais traduire

    Il faut que tu construise ta requête par petits bouts en fonction des champs qui ont été envoyés par le formulaire.

    Par exemple tu peux vérifier si le champ pseudo contient quelque chose. Si c'est le cas tu ajoutes à ta requête une condition where membre_pseudo :
    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
     
    //requete de base
    $sql = 'SELECT * FROM forum_membres ';
     
    $conditions = array();
    //si pseudo contient quelque chose, on ajoute une condition sur membre_pseudo
    if (!empty($pseudo))
    {
      $conditions[] = ' membre_pseudo = "'.$pseudo.'" ';
    }
    //si membre_rang contient quelque chose, on ajoute une condition sur membre_rang
    if (!empty($pseudo))
    {
      $conditions[] = ' membre_rang = "'.$membre_rang.'" ';
    }
    // si on a des conditions, on ajoute la requête where correspondante
    if (!empty($conditions))
    {
      $sql .= = ' WHERE '.implode(' AND ', $conditions).' ';
    }
    //on ajoute la requête de tri
    $sql .= ' ORDER BY '.$tri.' '.$ordre;
     
    echo $sql;
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. [PR-2010] Supprimer les doublons d'une listbox et la trier par ordre croissant
    Par Antonin Boloch dans le forum Project
    Réponses: 2
    Dernier message: 07/05/2014, 16h56
  2. Réponses: 0
    Dernier message: 06/06/2012, 10h26
  3. Réponses: 0
    Dernier message: 08/06/2011, 13h45
  4. [MySQL] Une liste des membres avec php
    Par -Fly- dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 13/11/2010, 17h57
  5. Faire une liste avec deux éléments par ligne
    Par pc.bertineau dans le forum Mise en page CSS
    Réponses: 18
    Dernier message: 12/04/2007, 14h47

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