Php - liste utilisateurs

Résolu/Fermé
mitch7600 Messages postés 27 Date d'inscription mardi 26 juin 2012 Statut Membre Dernière intervention 6 septembre 2012 - 26 juin 2012 à 19:07
mitch7600 Messages postés 27 Date d'inscription mardi 26 juin 2012 Statut Membre Dernière intervention 6 septembre 2012 - 29 juin 2012 à 19:16
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

tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
26 juin 2012 à 20:53
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
mitch7600 Messages postés 27 Date d'inscription mardi 26 juin 2012 Statut Membre Dernière intervention 6 septembre 2012 7
27 juin 2012 à 00:09
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
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 219
27 juin 2012 à 09:10
ç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
mitch7600 Messages postés 27 Date d'inscription mardi 26 juin 2012 Statut Membre Dernière intervention 6 septembre 2012 7
Modifié par mitch7600 le 27/06/2012 à 22:30
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
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
28 juin 2012 à 10:03
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
mitch7600 Messages postés 27 Date d'inscription mardi 26 juin 2012 Statut Membre Dernière intervention 6 septembre 2012 7
28 juin 2012 à 19:23
nan tjours pas... note erreur avec le fletch :-0
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
28 juin 2012 à 19:40
c'est ton code qui va pas, quel est l'erreur ?
0
mitch7600 Messages postés 27 Date d'inscription mardi 26 juin 2012 Statut Membre Dernière intervention 6 septembre 2012 7
28 juin 2012 à 22:31

<?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