Erreur dans un espace membre

killianwebmaster
Invité n'ayant pas de compte PHPfrance

07 nov. 2012, 10:30

Bonjour, je suis en train de créer un espace membre, et j'ai une erreur dans la liste des membre que je n'arrive pas à résoudre.
Est ce que quelqu'un pourrait m'aider s'il vous plait.
L'erreur est dans le liste_membre.func.php mais je vais vous donner le code complet.

Voila le liste_membre.php
<?php
include('functions/liste_membre.func.php');
include('body/header.php');
include('body/menu.php');
?>
<h3>La liste des membres</h3>
<?php
$pseudos_avatars = recuperer_pseudo_avatar();
if(!empty($pseudos_avatars))
{
foreach($pseudos_avatars as $pseudo_avatar)
{
?>
<p><a href=''><?php echo $pseudo_avatar['pseudo']; ?></a></p>
<a href=''><img src="avatar/<?php echo $pseudo_avatar['avatar']; ?>" height='100' width='100' alt='avatar'></a>
<?php
}
}else{
echo"Vous êtes le seul membre pour l'instant";
}
?>


Voici le liste_membre.func.php ou il est censé avoir l'erreur.
<?php
//la function qui va récupérer le pseudo et l'avatar des membres sauf de celui connecté
function recuperer_pseudo_avatar()
{
$results = array();
$query = mysql_query("SELECT pseudo,avatar FROM utilisateurs WHERE pseudo!='{$_SESSION['pseudo']}'");
while($row = mysql_fetch_assoc($query))
{
$results[] = $row;
}
return $results;
}
?>


Si quelqu'un pourrait m'aider je le remercie.
Merci, au revoir.

ViPHP
xTG
ViPHP | 7331 Messages

07 nov. 2012, 10:50

J'ai bien compris que tu avais une erreur au nombre de fois que tu nous l'annonces mais...
C'est quoi l'erreur ? :|

Eléphant du PHP | 145 Messages

08 nov. 2012, 10:43

Bonjour,
function recuperer_pseudo_avatar()
	{
		$results = array();
		$query = mysql_query("SELECT pseudo,avatar FROM utilisateurs WHERE pseudo!='{$_SESSION['pseudo']}'");
		while($row = mysql_fetch_assoc($query))
		{
			$results[] = $row;
		}
		return $results;
	}
As tu testé si ta requête retourne un résultat ?

Et pourquoi tu as ceci :
WHERE pseudo!='{$_SESSION['pseudo']}'"
J'ai du mal à saisir, si tu fais une fonction, pourquoi y faire intervenir une variable $_SESSION et pourquoi des accolades ?
Tu peux à la rigueur faire ceci :
$query = mysql_query("SELECT pseudo,avatar FROM utilisateurs WHERE pseudo!='".$_SESSION['pseudo']."'");
Et encore, le mieux serait de faire passez une variable en paramètre, ça sert à ça une fonction ;)

fichier liste_membre.func.php
function recuperer_pseudo_avatar($pseudo = false)
	{
		if($pseudo){
			$results = array();
			$query = mysql_query("SELECT pseudo,avatar FROM utilisateurs WHERE pseudo!='$pseudo'");
			while($row = mysql_fetch_assoc($query))
			{
				$results[] = $row;
			}
			return $results;
		}else return false;
	}
et du coup, fichier liste_membre.php
<?php
	include('functions/liste_membre.func.php');
	include('body/header.php');
	include('body/menu.php');
?>
<h3>La liste des membres</h3>
<?php
	$pseudos_avatars = recuperer_pseudo_avatar($_SESSION['pseudo']);
	if(!empty($pseudos_avatars))
	{
		foreach($pseudos_avatars as $pseudo_avatar)
		{
			?>
			<p><a href=''><?php echo $pseudo_avatar['pseudo']; ?></a></p>
			<a href=''><img src="avatar/<?php echo $pseudo_avatar['avatar']; ?>" height='100' width='100' alt='avatar'></a>
			<?php
		}
	}else{
		echo"Vous êtes le seul membre pour l'instant";
	}
?>
Test et redis nous ^^

Albat90 ;)
La culture, c'est comme la confiture, moins on en a, plus on l'étale.

ViPHP
xTG
ViPHP | 7331 Messages

08 nov. 2012, 14:35

Et pourquoi tu as ceci :
WHERE pseudo!='{$_SESSION['pseudo']}'"
J'ai du mal à saisir, si tu fais une fonction, pourquoi y faire intervenir une variable $_SESSION et pourquoi des accolades ?
Sans accolade la notation tableau avec quote ne serait pas interprétée.
$_SESSION[pseudo] par contre peut être interprétée il me semble, mais c'est assez moche car on ne sait pas si pseudo est une constante ou non.

Eléphant du PHP | 145 Messages

08 nov. 2012, 16:03

Et pourquoi tu as ceci :
WHERE pseudo!='{$_SESSION['pseudo']}'"
J'ai du mal à saisir, si tu fais une fonction, pourquoi y faire intervenir une variable $_SESSION et pourquoi des accolades ?
Sans accolade la notation tableau avec quote ne serait pas interprétée.
$_SESSION[pseudo] par contre peut être interprétée il me semble, mais c'est assez moche car on ne sait pas si pseudo est une constante ou non.
Ok, je ne connaissais pas cette histoire d'accolade. En général, je m'arrange pour extraire ma donnée dans une variable avant de l'exploiter :)

Quoi qu'il en soit, j'ai bien l'impression que le problème venait de la quand même ^^
La culture, c'est comme la confiture, moins on en a, plus on l'étale.