Php - liste utilisateurs

Résolu
mitch7600 Messages postés 29 Statut Membre -  
mitch7600 Messages postés 29 Statut Membre -
Bonjour,

voici mon code pour celui qui veut prendre des idées :

Comment pourrais je faire pour que l' utilisateur connecté ne voit que les utilisateur du sexe opposé? sexe : homme connecté voit membres femmes et vive versa.

<?
$toto=$_SESSION['username'];
try
{
	$bdd = new PDO('mysql:host=localhost;dbname=phplogin', 'root', '');
}
catch(Exception $e)
{

        die('Erreur : '.$e->getMessage());
}

$reponse = $bdd->query("SELECT sexe,username,age FROM users WHERE  username NOT LIKE '$toto'");

while ($data = $reponse->fetch())
{

?>
 <?php   
 if( $data['sexe'] != "Homme"){?>
    <p>
  <a href="membre_<?php echo $data['username']?>.php"> <?php echo ($data['username']);?> - <?php echo ($data['age']); ?> ans </a>
    </em>
   </p>
<?php
}
} 
$reponse->closeCursor(); // Termine le traitement de la requête
?>

J ai utilisé if( $data['sexe'] != "Homme" pour vous donné une idéée si l' utilisateur connecté serait un homme.

Avec explication s il vous plait, pour que je puisse le refaire pour d autres caractéristiques.

Je vous remercie d avance

3 réponses

  1. tryan44 Messages postés 1289 Date d'inscription   Statut Membre Dernière intervention   220
     
    Salut,

    Directement dans la requête ..non?
    $reponse = $bdd->query("SELECT sexe,username,age FROM users WHERE  username NOT LIKE '$toto' AND sexe != 'Homme'");


    L'idéal serait de récupérer le statut du connecté pour l'insérer directement dans la requête, genre :
    $toto=$_SESSION['username'];
    $sexe=$_SESSION['sexe'];
    
    $reponse = $bdd->query("SELECT sexe,username,age FROM users WHERE  username NOT LIKE '$toto' AND sexe != $sexe");
    0
  2. mitch7600 Messages postés 29 Statut Membre 7
     
    En fait l idée est bonne mais je n ai pas de $_SESSION[sexe] j ai juste le $_SESSION['username'] via l entrée du speudo de l utilisateur pour accéder à son profil.

    J ai essayé cela mais çà note rien meme pas de msessage d erreurs enfait çà fonctionne pas :

    <?php
    while ($data = $reponse->fetch())
    {
    $sexe=$data['sexe'];
     $reponse2 = $bdd->query("SELECT sexe FROM users WHERE   sexe != $sexe");
    
    while ($data2 = $reponse2)
    {
    $sexe2=$data2['sexe']
    ?>
     <?php  
     
     if( $data['sexe'] != $sexe2 ){?>
        <p>
      <a href="membre_<?php echo $data['username']?>.php"> <?php echo ($data['username']);?> - <?php echo ($data['age']); ?> ans </a>
        </em>
       </p>
    <?php
    }
    }
    } 
    $reponse->closeCursor();
    ?>
    


    Merci
    0
  3. tryan44 Messages postés 1289 Date d'inscription   Statut Membre Dernière intervention   220
     
    ça ne serait pas plutôt un truc du style :
    //on récupère le sexe de la personne logué
    $reponse2 = $bdd->query("SELECT sexe FROM users WHERE username=$toto");
    while ($data2 = $reponse2)
    {
    $sexe2=$data2['sexe']
    }
    //on sélectionne tout sauf le logué dont le sexe est différent
    $reponse = $bdd->query("SELECT sexe,username,age FROM users WHERE  username NOT LIKE '$toto' AND sexe != $sexe2");
    
    0
    1. mitch7600 Messages postés 29 Statut Membre 7
       
      En tout cas çà ne fonctionne tjrs pas.. mais un grand merci de vous intereessez au sujet.. çà me permet de pas lacher et d essayer de nouveau d autres idées qui me viennent.. puisque je suis un novice qui a appris par you tube et cours du zér.. J esaies via ce que je connais.... en esperan que çà marchera... :-)
      0
    2. maka54 Messages postés 721 Statut Membre 80
       
      En une requete, essayes pour voir

      SELECT users.sexe,users.username,users.age 
      FROM users 
      WHERE users.sexe != (
      	SELECT users2.sexe 
      	FROM users as users2 
      	WHERE users2.username LIKE '$toto'
      )
      0
    3. mitch7600 Messages postés 29 Statut Membre 7
       
      nan tjours pas... note erreur avec le fletch :-0
      0
    4. maka54 Messages postés 721 Statut Membre 80
       
      c'est ton code qui va pas, quel est l'erreur ?
      0
    5. mitch7600 Messages postés 29 Statut Membre 7
       
      
      <?php
      session_start();
         ?>
      
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
      
           <head>
             <title></title>	 
                 <meta>
      	
      
      		   
      <link rel="stylesheet" media="screen" type="text/css" title="Design" href="css/phpcss.css" />
        </style>
         </head>
       <body>
       <div id="milieu">
      
       
       <div id="standardblock">
      <div id="title">
       </div>
      <br style="clear: both;"/>
      <table class="standard"> 
      
      <div id="title">
      
      
      
      
         <?php
      
        if(isset($_SESSION['username']))  /* si l utilisateur n' est pas indetifier ne pas acceder à la suite */
        { 
         
           echo "Bienvenue ".$_SESSION['username']." <br/><a href='logout.php'>Se deconnecter</a> &nbsp;|&nbsp;
      	 <a href='changepassword.php'>Changez de Password</a>";
      	 }
      	 else
      	 {
      	 header('Location:login.php');	  
      	  }
        $toto=$_SESSION['username'];
      	?>
      
      <?php
      try
      {
      	// On se connecte à MySQL
      	$bdd = new PDO('mysql:host=localhost;dbname=phplogin', 'root', '');
      }
      catch(Exception $e)
      {
      	// En cas d'erreur, on affiche un message et on arrête tout
              die('Erreur : '.$e->getMessage());
      }
      
      // Si tout va bien, on peut continuer
      
      // On récupère tout le contenu de la table avec kes différences demandées
      $reponse = $bdd->query ("SELECT users.sexe,users.username,users.age 
      FROM users 
      WHERE users.sexe != 
      	SELECT users2.sexe 
      	FROM users as users2 
      	WHERE users2.username LIKE '$toto'"
      );
      
      // On affiche chaque entrée une à une
      while ($data = $reponse->fetch())
      {
      ?>
          <p>
        <a href="membre_<?php echo $data['username']?>.php"> <?php echo ($data['username']);?> - <?php echo ($data['age']); ?> ans</a>
          </em>
         </p>
      <?php
      }
      
      $reponse->closeCursor(); // Termine le traitement de la requête
      
      ?>
      
      </div>
        </body>
       </html>
      
      



      Voila le message d erreur ;

      Fatal error: Call to a member function fetch() on a non-object ??? merci,
      0