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 :

Filtre ou Tri sur données


Sujet :

Langage PHP

  1. #21
    Membre du Club
    Femme Profil pro
    Webdesigner
    Inscrit en
    Avril 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2014
    Messages : 92
    Points : 53
    Points
    53
    Par défaut
    Alors... C'est à peine si j'ose encore poster sur le sujet
    En effet le notice a disparu mais maintenant l'utilisation de mes select ne m'affiche aucun enregistrement...
    J'arrive sur ma page j'ai tous mes enregistrements par défaut, je filtre sur l'un ou l'autre des select je n'ai plus rien.
    Voilà voilà

  2. #22
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Poste le code de génération de ta page en entier, stp

  3. #23
    Membre du Club
    Femme Profil pro
    Webdesigner
    Inscrit en
    Avril 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2014
    Messages : 92
    Points : 53
    Points
    53
    Par défaut
    Le voilà :

    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
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    <?php 
    $selected = function($k, $v) { return ($k === $v) ? ' selected' : ''; };
    ?>
     
    <div id="triFiltre"> 
    <form method="post" action="index.php" name="formulaireTri">
     
    	<select name="liste_choix_tri">
     
    		<option value="" <?php= $selected($selectedTri, 'Trier') ?> >--- Trier ---</option>
    		<option value="type" <?php= $selected($selectedTri, 'type') ?> >par Type</option>
    		<option value="nom" <?php= $selected($selectedTri, 'nom') ?> >par Nom</option>
    		<option value="pole" <?php= $selected($selectedTri, 'pole') ?> >par Pôle</option>
     
    	</select>
     
    	<select name="liste_filtre_type">
     
    		<option value="" <?php= $selected($selectedFiltreType, 'Filtre par type') ?>>--- Filtrer par type ---</option>
    		<option value="orga" <?php= $selected($selectedFiltreType, 'orga') ?> >ORGA</option>
    		<option value="candi" <?php= $selected($selectedFiltreType, 'candi') ?> >CANDI</option>
    		<option value="jury" <?php= $selected($selectedFiltreType, 'jury') ?> >JURY</option>
     
    	</select>
     
    	<select name="liste_filtre_hotel">
     
    		<option value="" <?php= $selected($selectedFiltreHotel, 'Filtre par hôtel') ?> >--- Filtrer par Hôtel ---</option>
    		<option value="Hôtel 1" <?php= $selected($selectedFiltreHotel, 'Hôtel 1') ?> >Hôtel 1</option>
    		<option value="Hôtel 2" <?php= $selected($selectedFiltreHotel, 'Hôtel 2') ?> >Hôtel 2</option>
    		<option value="Hôtel 3" <?php= $selected($selectedFiltreHotel, 'Hôtel 3') ?> >Hôtel 3</option>
     
    	</select>
     
    	<input type="submit" value="OK" />
     
    </form>
    </div>
     
    <?php
    $sql = 'SELECT * FROM olympiades';
    $param = array();
    $where = array();
     
    // ajoute le filtre dans la requête
    if (!empty($_POST['liste_filtre_type']))	{
    	$where[] = ' type = ? ';
    	$param[] = $_POST['liste_filtre_type'];
    }
     
    if(!empty($_POST['liste_filtre_hotel']))	{
    	$where[] = ' nomHotel = ? ';
    	$param[] = $_POST['liste_filtre_hotel'];
    }
     
    $sql .= implode($where, ' AND ');
     
     
    // ajoute l'ordre dans la requête
    $colonnes_filtre = array('type', 'nom', 'pole');
    if (!empty($_POST['liste_choix_tri']) && in_array($_POST['liste_choix_tri'], $colonnes_filtre)) 	{
    	$sql .= ' ORDER BY ' . $_POST['liste_choix_tri'];
    }
     
    $reponse = $bdd->prepare($sql);
    $reponse->execute($param);
     
    ?>
     
     
    <table>
     
    	<tr>
    		<td>N°</td>
    		<td>Nom</td>
    		<td>Prénom</td>
    		<td>Pôle</td>
    	</tr>
     
    	<?php
    	while ($donnees = $reponse->fetch())
    	{
    	?>
    		<tr>
    			<td> <?php echo $donnees['id']; ?> </td>
    			<td><?php echo $donnees['nom']; ?> </td>
    			<td><?php echo $donnees['prenom']; ?> </td>
    			<td> <?php echo $donnees['pole']; ?> </td>
    		</tr>
    	<?php
    	}
    	$reponse->closeCursor();
    	?>	
     
    </table>

  4. #24
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Euh

    pour insérer du PHP dans un bloc HTML c'est soit :
    soit la version abrégée :
    mais sûrement pas ta version :
    Tiens un peu de lecture par ici

  5. #25
    Membre du Club
    Femme Profil pro
    Webdesigner
    Inscrit en
    Avril 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2014
    Messages : 92
    Points : 53
    Points
    53
    Par défaut
    Salut rawsrc,

    J'ai corrigé mon code
    Merci pour le lien.

    Mais je n'ai toujours aucun enregistrement qui s'affiche lorsque je me sers de l'un ou l'autre des select de filtre (le select de tri, lui, fonctionne très bien).

    Code corrigé :
    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
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    <?php 
    $selected = function($k, $v) { return ($k === $v) ? ' selected' : ''; };
    $selectedTri = (empty($_POST['liste_choix_tri'])) ? 'Trier' : $_POST['liste_choix_tri'];
    $selectedFiltreType = (empty($_POST['liste_filtre_type'])) ? 'Filtrer par type' : $_POST['liste_filtre_type'];
    $selectedFiltreHotel = (empty($_POST['liste_filtre_hotel'])) ? 'Filtrer par hôtel' : $_POST['liste_filtre_hotel'];
    ?>
     
    <div id="triFiltre"> 
    <form method="post" action="index.php" name="formulaireTri">
     
    	<select name="liste_choix_tri">
     
    		<option value="" <?php echo $selected($selectedTri, 'Trier'); ?> >--- Trier ---</option>
    		<option value="type" <?php echo $selected($selectedTri, 'type'); ?> >par Type</option>
    		<option value="nom" <?php echo $selected($selectedTri, 'nom'); ?> >par Nom</option>
    		<option value="pole" <?php echo $selected($selectedTri, 'pole'); ?> >par Pôle</option>
     
    	</select>
     
    	<select name="liste_filtre_type">
     
    		<option value="" <?php echo $selected($selectedFiltreType, 'Filtre par type'); ?>>--- Filtrer par type ---</option>
    		<option value="orga" <?php echo $selected($selectedFiltreType, 'orga'); ?> >ORGA</option>
    		<option value="candi" <?php echo $selected($selectedFiltreType, 'candi'); ?> >CANDI</option>
    		<option value="jury" <?php echo $selected($selectedFiltreType, 'jury'); ?> >JURY</option>
     
    	</select>
     
    	<select name="liste_filtre_hotel">
     
    		<option value="" <?php echo $selected($selectedFiltreHotel, 'Filtre par hôtel'); ?> >--- Filtrer par Hôtel ---</option>
    		<option value="Hôtel 1" <?php echo $selected($selectedFiltreHotel, 'Hôtel 1'); ?> >Hôtel 1</option>
    		<option value="Hôtel 2" <?php echo $selected($selectedFiltreHotel, 'Hôtel 2'); ?> >Hôtel 2</option>
    		<option value="Hôtel 3" <?php echo $selected($selectedFiltreHotel, 'Hôtel 3'); ?> >Hôtel 3</option>
     
    	</select>
     
    	<input type="submit" value="OK" />
    </form>
    </div>
     
    <?php
    $sql = 'SELECT * FROM olympiades';
    $param = array();
    $where = array();
     
    // ajoute le filtre dans la requête
    if (!empty($_POST['liste_filtre_type']))	{
    	$where[] = ' type = ? ';
    	$param[] = $_POST['liste_filtre_type'];
    }
     
    if(!empty($_POST['liste_filtre_hotel']))	{
    	$where[] = ' nomHotel = ? ';
    	$param[] = $_POST['liste_filtre_hotel'];
    }
     
    $sql .= implode($where, ' AND ');
     
     
    // ajoute l'ordre dans la requête
    $colonnes_filtre = array('type', 'nom', 'pole');
    if (!empty($_POST['liste_choix_tri']) && in_array($_POST['liste_choix_tri'], $colonnes_filtre)) 	{
    	$sql .= ' ORDER BY ' . $_POST['liste_choix_tri'];
    }
     
    $reponse = $bdd->prepare($sql);
    $reponse->execute($param);
     
    ?>
     
    <table>
     
    	<tr>
    		<td>N°</td>
    		<td>Nom</td>
    		<td>Prénom</td>
    		<td>Pôle</td>
    	</tr>
     
    	<?php
    	while ($donnees = $reponse->fetch())
    	{
    	?>
    		<tr>
    			<td> <?php echo $donnees['id']; ?> </td>
    			<td><?php echo $donnees['nom']; ?> </td>
    			<td><?php echo $donnees['prenom']; ?> </td>
    			<td> <?php echo $donnees['pole']; ?> </td>
    		</tr>
    	<?php
    	}
    	$reponse->closeCursor();
    	?>	
     
    </table>

  6. #26
    Membre du Club
    Femme Profil pro
    Webdesigner
    Inscrit en
    Avril 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2014
    Messages : 92
    Points : 53
    Points
    53
    Par défaut
    @rawsrc @sabotage
    A vous qui m'avez bien dépatouillée de mes épines php dans le pied depuis 1 semaine : je suis sûre que la solution n'est pas loin pour mes filtres.
    Merci encore par avance et bonne nuit.

  7. #27
    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
    Tu aurais pu le debuguer tout seul, il manque le mot WHERE dans la requête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (!empty($where)) {
        $sql .= ' WHERE ' . implode($where, ' AND ')
    };

  8. #28
    Membre du Club
    Femme Profil pro
    Webdesigner
    Inscrit en
    Avril 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2014
    Messages : 92
    Points : 53
    Points
    53
    Par défaut
    Merciiii !!!
    J'ai encore beaucoup à apprendre
    Merci pour toute ton aide en tous cas, et @rawsrc aussi

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [XL-2007] Filtre et tri sur Excel via vba
    Par benol3 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 16/06/2014, 09h33
  2. Filtre et tri sur l'en-tête d'une colonne d'un tableau
    Par davidtse dans le forum GWT et Vaadin
    Réponses: 6
    Dernier message: 25/11/2010, 10h20
  3. Réponses: 6
    Dernier message: 12/07/2010, 16h38
  4. Filtre et tri sur 2 tables => Utilisation d'une vue ?
    Par gmic7 dans le forum Requêtes
    Réponses: 2
    Dernier message: 22/04/2010, 16h28
  5. Filtre et tri sur variable ?
    Par Sylvie.B dans le forum Débuter
    Réponses: 1
    Dernier message: 28/07/2009, 16h45

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