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 des membres par type [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 514
    Points : 107
    Points
    107
    Par défaut Tri des membres par type
    Bonjour, voilà j'ai un petit soucis quand le type qui est le sexe masculin ou féminin dans ma recherche des membres onlines.

    la recherche ne ce fait pas correctement elle affiche tout les type que cela soit homme ou femme en cliquant sur l'un ou l' autre liens de recherche.

    voici mon code et ajouter liste vide si personne cela est il possible.

    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
    <?PHP			
    		require("function.php");
            $connection = connexion_db (); 
     
    header('Content-type: text/html; charset=UTF-8');
     
     
    if(isset($_SESSION['login_site'])){
     
     
     
    $requete_nombre_connecte = $connection->prepare('SELECT COUNT(*) pseudo_site FROM online_site WHERE pseudo_site=:pseudo_site');
    if($requete_nombre_connecte->execute(array(':pseudo_site'=> $_SESSION['login_site']))){
    	$connecte = $requete_nombre_connecte->fetchColumn();
     
    		if($connecte >0){
                    $udapte_connecte = ('UPDATE online_site SET timestamp=:timestamp WHERE pseudo_site=:pseudo_site');	
    			    $req_connecte = $connection->prepare($udapte_connecte);			
                    $req_connecte->execute(array(':timestamp'=> date("Y-m-j H:i:s"),':pseudo_site'=> $_SESSION['login_site'],':type'=> $_SESSION['sexe_site']));	
            }else{
                    $connecte_online = array(
    				                ':timestamp'=> date("Y-m-j H:i:s"),
    				                ':pseudo_site'=> $_SESSION['login_site'],
    								':type'=> $_SESSION['sexe_site']);	
     
                     $values= join(', ',array_keys($connecte_online));
                     $req=$connection->prepare( 'INSERT INTO online_site ('.str_replace(':','',$values).') VALUES('.$values.')' );
                     $req->execute($connecte_online);			
            }
         }
      }
    ?>
       <table>
         <th><a href="online_site.php?type=Homme">Homme</a></th>
         <th><a href="online_sitephp?type=Femme">Femme</a></th>
    <?php  
       $sql = 'SELECT * FROM online_site';
          if(isset($_GET['type']) && !empty($_GET['type'])){
          $sql .= ' ORDER BY ' . $connection->quote($_GET['type']);
          }
     
       $online = $connection->query($sql);
     
       while($result = $online->fetch()) 
             {  
     
       echo'<tr><td><b>'.$result['pseudo_site'].'</b></td><br/>';
       echo'</tr> 
        </table>';
    }
    $connection->exec('DELETE FROM online_site WHERE timestamp< DATE_SUB(NOW(), INTERVAL 1 MINUTE)');
    ?>

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Ce n'est pas une clause WHERE dont tu as besoin plutôt qu'un ORDER BY ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    bonjour sabotage,

    j'ai ORDER BY

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       $sql = 'SELECT * FROM online_site';
          if(isset($_GET['type']) && !empty($_GET['type'])){
          $sql .= ' ORDER BY ' . $connection->quote($_GET['type']);
          }

  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
    et donc ce n'est pas plutôt un WHERE que tu veux ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Re sabotage where plus rien quand tu clique sur le lien d'une des liste femme ou homme

  6. #6
    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 n'as pas juste remplacé "ORDER BY" par "WHERE" j'espère.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    si que fallait il faire stp?

  8. #8
    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
    En plus tu as écris une requête avec un WHERE ligne 12 de ton code, donc tu sais bien le faire et tu sais à quoi ça sert non ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Bonjour sabotage oui.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     $sql = 'SELECT * FROM online_site';
          if(isset($_GET['type']) && !empty($_GET['type'])){
          $sql .= ' WHERE ' . $connection->quote($_GET['type']);
          }
    Cela fonction pas

  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
    Regarde comment est écrite la requête qui fonctionne plus haut dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $requete_nombre_connecte = $connection->prepare('SELECT COUNT(*) pseudo_site FROM online_site WHERE pseudo_site=:pseudo_site');
    if($requete_nombre_connecte->execute(array(':pseudo_site'=> $_SESSION['login_site']))){
    Il faut que tu fasses quelque chose de similaire.
    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
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    merci a vous deux cela fonction mais avec le query je n'y arrive pas seriez vous me montrez svp?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
       <table>
         <th><a href="online_site.php?type=h">Homme</a></th>
         <th><a href="online_site.php?type=f">Femme</a></th>
    <?php 
    @$type = $_GET['type']; 
    $connect = $connection->prepare('SELECT pseudo_site,type FROM online_site  WHERE type=:type');
    $connect->execute(array(':type'=>$type));		
    while($result = $connect->fetch()){
     
     
       echo'<tr><td><b>'.$result['pseudo_site'].'</b>
       <a href="http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']).'/envoyez_message.php?destin='.$result['pseudo_site'].'">&nbsp;Message</a>';
       echo'</td><br/>';  
       echo'</tr></table>';

  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
    Tu obtiens quoi avec ce code ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Bonjour sabotage,

    Quand je clique sur un des liens homme ou femme cela tri bien, c'est cool. reste a trouver de les affichés sans le tri et mélanger, homme et femme.

    Merci de votre aide en tout les cas c'est sympa.

  14. #14
    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
    Je pense que je n'ai toujours pas compris ce que tu voulais faire depuis le début.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  15. #15
    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 crois que ce que speedylol veut c'est la même requête sans le filtre, parce que là, il faut obligatoirement que la valeur "type" soit renseignée.

    Pour ça, il faut que tu rendes le $_GET['type'] facultatif :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $params = array();
    $requete = 'SELECT pseudo_site,type FROM online_site ';
    if (!empty($_GET['type'])) {
        // si on a reçu un type, on filtre dessus
        $requete = $requete.' WHERE type=:type';
        // on ajoute la valeur de type aux paramètres d'exécution de la requête
        $params['type'] = $_GET['type'];
    }
     
    $connect = $connection->prepare($requete);
    $connect->execute($params);
    et tu accèdes à la page avec le même lien, mais sans type : <a href="online_site.php">Tous</a>.
    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]

  16. #16
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Merci Celira cela sera toujours toi ;-) ça fonctionne super.

  17. #17
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Re encore moi et avec le $_POST pour resté sur le script la cela ne fonction pas

    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
     
    $requete = 'SELECT pseudo_site,type FROM online_site ';
    if (!empty($_POST['type'])) {
        // si on a reçu un type, on filtre dessus
        $requete = $requete.' WHERE type=:type';
        // on ajoute la valeur de type aux paramètres d'exécution de la requête
        $params['type']  = $_POST['type'];
    }
    @$connect = $connection->prepare($requete);
    @$connect->execute($params);		
    $typef = filter_input(INPUT_POST, 'f');
    $typeh = filter_input(INPUT_POST, 'h');	 
     echo'<FORM method="POST" action="'.$_SERVER['PHP_SELF'].'">
         <input id="femme" type="submit" name="type" value="'.$typef.'" />
    	 <input id="homme" type="submit" name="type" value="'.$typeh.'" />
         </FORM>';
    while($result = $connect->fetch()){
       echo'<b>'.$result['pseudo_site'].'</b>
       <a href="http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']).'/envoyez_message.php?destin='.$result['pseudo_site'].'">&nbsp;Message</a></br>';
     
    $connection->exec('DELETE FROM online_site WHERE timestamp< DATE_SUB(NOW(), INTERVAL 10 MINUTE)');
    	  }
    ?>

  18. #18
    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 pense que ton nouveau problème mérite une nouvelle discussion, avec un chouia plus d'explications sur ce qui ne marche pas.
    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]

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

Discussions similaires

  1. [MySQL] Comment faire le tri des membres actifs dans un SELECT
    Par pasc06 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 27/11/2008, 14h00
  2. Tri des données par paramètres
    Par CyberMen dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 30/06/2008, 17h14
  3. tri des dates par semaine
    Par syldudu dans le forum Access
    Réponses: 17
    Dernier message: 10/10/2006, 11h27

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