Page 1 sur 1

Afficher les avatars des membres inscrits

Posté : 09 août 2012, 19:35
par nico44530
Bonjour,

Dans mon cas, j'ai un script d'affichage de membres inscrits.
Les avatars sont renommés par l'id des membres.

Je me suis inscrit en tant qu'Administrateur et donc je n'ai pas encore d'avatar, et donc selon mon script, il devrait affiché un avatar par défaut (homme ou femme selon le sexe du membre)
Le problème c'est que lavatar s'affiche mais c'est l'avatar femme alors que je suis un homme :lol:

Femme : Image
Homme : Image

Dans ma base de donnée, le champ "sexe" est un smallint avec 2 checkbox qui ont pour value = 1 et 2 (1 étant l'homme, et 2 la femme)

$filename va déterminé si l'avatar existe
$adresse_image est comme son nom l'indique l'image de l'avatar par défaut

Voici mon script :
				<div class="bloc_04">
					<h1>Membres inscrits</h1>
					<?php
					$sql = connect_sql();
					$query = mysql_query('SELECT id, nom, prenom, sexe FROM wa_communaute');
					$result = mysql_fetch_array($query);
					$filename = '../images/upload/'.$id.'.png';
					$adresse_image = $sexe ==1 ? '../images/upload/homme.png' : '../images/upload/femme.png';
					if (file_exists($filename)) {
					echo '
						<table class="list-membres">
							<tr>
								<td><a href=""><img src="../images/upload/'.$id.'.png" alt="" /></a></td>
							<tr>
						</table>';
					} else {
                                        echo '
						<table class="list-membres">
							<tr>
								<td><a href=""><img src="'.$adresse_image.'" alt="" /></a></td>
							<tr>
						</table>';
                                        }
					?>
				</div>
Voila, je pense que j'ai donné assez d'infos pour vous permettre de m'aider.

Merci d'avance

Re: Afficher les avatars des membres inscrits

Posté : 09 août 2012, 20:43
par Ryle
Tes variables $id et $sexe ne sont pas définies. Ton code fonctionnera sans doute mieux avec $result['id'] ou $result['sexe'] pour récupérer les données de ta requête :)

Ps : active les warnings quand tu développes, ça te permet de repérer ce genre d'erreur puisque tu aurais un message "variable non définie" :)

Re: Afficher les avatars des membres inscrits

Posté : 09 août 2012, 21:42
par nico44530
Ça marche oui et non.
Déjà le script repère si je suis un homme ou une femme ^^
J'ai modifié un peu le script et ça affiche bien un avatar, mais c'est l'avatar par défaut qui est affiché.

Mon id est "1" et j'ai une image 1.png sur le serveur, je ne comprend pas pourquoi l'avatar (id) du membre ne veut pas s'afficher :(

Voici le script :
					<?php
					$sql = connect_sql();
					$query = mysql_query('SELECT id, nom, prenom, sexe FROM wa_communaute');
					if ($query) {
						while ($result = mysql_fetch_object($query)) {
							$prenom = $result->prenom;
							$nom = $result->nom;
							$id = $result->id;
							$sexe = $result->sexe;
							$adresse_image = $sexe ==1 ? '../images/upload/homme.png' : '../images/upload/femme.png';
							$filename = '../images/upload/'.$id.'.png';
							if (file_exists($filename)) {
							echo '
					<table class="list-membres">
						<tr>
							<td><a href=""><img src="../images/upload/'.$id.'.png" alt="" /></a></td>
						<tr>
					</table>';
							} else {
							echo '
					<table class="list-membres">
						<tr>
							<td><a href=""><img src="'.$adresse_image.'" alt="" /></a></td>
						<tr>
					</table>';
							}
						}
					}
					mysql_close();
					?>

Re: Afficher les avatars des membres inscrits

Posté : 09 août 2012, 21:56
par Ryle
S'il rentre dans le else, c'est que la condition du if() est fausse. Donc que le fichier $filename n'est pas trouvé.

Est-ce que ton fichier 1.png est bien dans le dossier images/upload/ ? (c'est bien un png et pas un jpg ou un gif ou autre ?)
Si tu affiches $id, est ce qu'il contient bien la valeur 1 ? (et pas 01 ou je ne sais quoi...)

Re: Afficher les avatars des membres inscrits

Posté : 09 août 2012, 22:02
par nico44530
J'ai résolu l'erreur
Explication :

Il fallait enlever les "../" des chemins de l'url
$adresse_image = $sexe ==1 ? 'images/upload/homme.png' : '../images/upload/femme.png';
$filename = 'images/upload/'.$id.'.png';