Php Affichage image en fonction champ de bdd

Résolu
Mano -  
Thamior Messages postés 264 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Voici mon probléme, j'essai d'afficher une image en fonction d'une valeur qui est dans le champ alerte de ma bdd.
Alerte peut soit comprendre 'rouge', 'orange' ou 'verte' >> en fonction de ca je veux faire un affichage <img etc... >.

Merci d'avance :)


Code:

<td><?php echo $row_Recordset1['alerte'];
//requête sql
$sql = "SELECT alerte FROM membre";
//Resultat de la requête
$result = mysql_query($sql);
//Variable avec la valeur dans le champ alerte (Alerte rouge, orange et verte)
$couleur = 'rouge';
$couleur2 = 'Orange';
$couleur3 = 'Verte';
//Lecture d'une ligne dans un tableau et la stock dans $row
//while tant qu'il y'a une ligne
//Condition si $row = le mot 'rouge' affichage de l'image etc...
while ($row = mysql_fetch_assoc($result)) {
switch($row)
{
case ($couleur):
echo '<img src=iconeRouge.GIF>' ;

case ($couleur2):
echo '<img src=iconeOrange.GIF>';

case ($couleur3):
echo '<img src=iconeVert.GIF>';
break;
}
}

?></td>
A voir également:

19 réponses

Thamior Messages postés 264 Date d'inscription   Statut Membre Dernière intervention   47
 
Bonjour,

Quelle est la valeur $row avant le while ? et le switch ?
0
Mano
 
Je ne lui ai rien mit comme valeur avant ca
0
Thamior Messages postés 264 Date d'inscription   Statut Membre Dernière intervention   47
 
Je crois avoir vu le problème.

Remplace :
switch($row)
{
case ($couleur):
echo '<img src=iconeRouge.GIF>' ;

case ($couleur2):
echo '<img src=iconeOrange.GIF>';

case ($couleur3):
echo '<img src=iconeVert.GIF>';
break;
}

Par :

switch($row["alerte"])
{
case ($couleur):
echo '<img src=iconeRouge.GIF>' ;

case ($couleur2):
echo '<img src=iconeOrange.GIF>';

case ($couleur3):
echo '<img src=iconeVert.GIF>';
break;
}

Si ça ne marche pas, fait :
echo "<p>".$row['alerte']."</p>";

Et mets moi ce que ça t'affiche :).
0
Mano
 
re :)

Ca m'affiche: L'image verte,orange,verte,rouge,orange,verte partout dans chaque ligne.

Etrange :p

J'ai l'impression que dans mon code ca prend pas les conditions en compte, c'est à dire qu'il ne compare pas le contenu de la var $couleur à ma $row...
0
Thamior Messages postés 264 Date d'inscription   Statut Membre Dernière intervention   47
 
Et avec ça :

switch($row["alerte"])
{
case ($couleur):
echo '<img src=iconeRouge.GIF>' ;
break;
case ($couleur2):
echo '<img src=iconeOrange.GIF>';
break;
case ($couleur3):
echo '<img src=iconeVert.GIF>';
break;
}

ça fait toujours la même chose ?
0
Mano
 
Non maintenant il m'affiche plus que les 3 images, dans toute les lignes mais ne prend toujours aucunes conditions en compte.
0
Thamior Messages postés 264 Date d'inscription   Statut Membre Dernière intervention   47
 
Juste avant le swtich, mets :
echo "<p>La valeur est ".$row['alerte']."</p>";

et copie moi ce que ça va t'afficher :).
0
Mano
 
Cette fois les images sont bien a leur bonne place pourquoi je sais pas...

Par contre pour une ligne ca m'affiche La valeur est *beaucoup :D

Petit printscreen : https://imageshack.com/

Et ca continue encore pas mal les (La valeur est)
0
Mano
 
Il m'affiche tout la colonne de la db pour un champ en visuel en fait.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Thamior Messages postés 264 Date d'inscription   Statut Membre Dernière intervention   47
 
Nouveau correctif :
$row = mysql_fetch_assoc($result);
while ($row)
{
switch($row["alerte"])
{
case ($couleur):
echo '<img src=iconeRouge.GIF>' ;
break;
case ($couleur2):
echo '<img src=iconeOrange.GIF>';
break;
case ($couleur3):
echo '<img src=iconeVert.GIF>';
break;
}
$row = mysql_fetch_assoc($result);
}

Avec ça ? (si ça ne marche tjs pas remet l'echo devant le switch).
0
Mano
 
Ca affiche les 3 images dans chaques lignes comme tout à l'heure et l'echo ne donne rien du tout cette fois.
0
Thamior Messages postés 264 Date d'inscription   Statut Membre Dernière intervention   47
 
Tes champs dans la base de données sont tous bien remplis ?
0
Mano
 
Non pas tous , je n'en ai remplit que 3 pour tester l'affichage des images.
0
Thamior Messages postés 264 Date d'inscription   Statut Membre Dernière intervention   47
 
L'affichage est donc normal ^^.

Je te conseil de mettre une valeur par défaut si tu souhaite avoir un affichage :).
0
Mano
 
Valeur par defaut mise mais ca ne change pas grand chose au probleme :p
0
Thamior Messages postés 264 Date d'inscription   Statut Membre Dernière intervention   47
 
En faite, 3 images par membre au lieu d'une c'est ça ?

Si oui, comment construis tu ton tableau ?
0
Mano
 
La table membre contient plusieur colonne dont Alerte qui contient maintenant la valeur par defaut Aucun.

J'ai fais les modifs en suprimant la colone et en la rajoutant ca va maintenant ca affiche bien rien quand c'est marquer aucun.
J'ai ajouter la valeur 'rouge' dans un champ, ca affiche l'image rouge dans chaque ligne.
En ajoutant la valeur orange dans un second champ ca change rien, toujours l'image rouge partout :)
0
Thamior Messages postés 264 Date d'inscription   Statut Membre Dernière intervention   47
 
Dans ta requête tu dois spécifié le membre concerné et répété autant de fois la requête qu'il y a de membres

Tu vois ?
0
Mano
 
Oui je comprend ce que tu veux dire, par contre je vois pas comment faire car mon tableau s'affiche apres une recherche.

Je dois modifié la requête $sql = "SELECT alerte FROM membre"; ?
0
Thamior Messages postés 264 Date d'inscription   Statut Membre Dernière intervention   47
 
Tu réccupères quelques part l'id/numero du membre ? (avant la requete que tu as cité) ?

Si oui, rajoute : WHERE id = $id dans ta requete.

La variable $id correspondra à l'identifiant du membre.
0
Mano
 
$id = "SELECT id_membre FROM membre";

$sql = "SELECT alerte FROM membre WHERE id=$id";

Mais il aime pas trop ca:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource

J'ai donc faire un mysql error au niveau du $resul et il me dit que c'est une erreur dans ma requete $id = "SELECT...
0
Thamior Messages postés 264 Date d'inscription   Statut Membre Dernière intervention   47
 
Tu construis un tableau html avec la liste de tes membres et avec une image symbolisant l'alert c'est ça ?
0
Mano
 
Oui c'est ca
0
Thamior Messages postés 264 Date d'inscription   Statut Membre Dernière intervention   47
 
Tu as donc une requête avant celle la qui liste la liste de tes membres non ?
0
Mano
 
$query_Recordset1 = sprintf("SELECT membre.id

Avant c'est via un recordset que je fais les recherches
0
Thamior Messages postés 264 Date d'inscription   Statut Membre Dernière intervention   47
 
Sélectionne l'id du membre à ce niveau la :) et c'est tant plus tard pour sélectionner l'alerte du membre :).

Comme je t'ai mit plus haut :).
0
Mano
 
Meme erreur et meme resultat :D
0
Thamior Messages postés 264 Date d'inscription   Statut Membre Dernière intervention   47
 
Fais voir ta première requête :) histoire que je vois si il y a une erreur :).
0
Mano
 
La requete recherche pour le listing:

$query_Recordset1 = sprintf("SELECT membre.id, membre.societe, membre.url, membre.nom, membre.tel, membre.alerte, membre.montantdu, membre.id_membre FROM membre WHERE nom LIKE '%s%%' OR url LIKE '%s%%' ", $colnom_Recordset1,$colurl_Recordset1);

ensuite je fais ca : $id = "SELECT membre.id_membre FROM membre";


et dans le code qu'on connait: $sql = "SELECT alerte FROM membre WHERE id_membre = $id";
0
Thamior Messages postés 264 Date d'inscription   Statut Membre Dernière intervention   47
 
Ok je vois.

Ce que as par : $query_Recordset1 te sert à faire ton tableau ?
As quoi correspond membre.id ?
0
Mano
 
membre.id_membre c'est celui que j'utilise pour l'identificateur du membre, celui que tu cites c'est juste pour lui attribue une cle ou autre un champ d'information sans plus.

Et le recordset me sert a inserer un tableau dynamique oui (Dreamweaver)
0
Thamior Messages postés 264 Date d'inscription   Statut Membre Dernière intervention   47
 
Tu peux donc te servir de ce champ pour ta requête plus bas pour la selection de alerte mais tu dois définir un $id correspondant à un seul membre.

Tu vois ou je veux en venir ?
0
Mano
 
Un id qui correspond a un seul membre existe deja c'est id_membre :)

C'est pas ce qu'on vient de tenter la?
0
Thamior Messages postés 264 Date d'inscription   Statut Membre Dernière intervention   47
 
La tu sélectionnes une liste de membres avec un certain nombre de champ pour chacun.

Dans le recordset, ça te sélectionne tous les membres correspondants au critères.

Quand tu vas d'enregistrement en enregistrement, tu mets membre.id_membre dans $id et tu fais ta requêtes alerte :).
0
Mano
 
Donc un truc dans ce style si j'ai bien compris:

$id: $query_Recordset1['membre.id_membre'] ; (Pense pas que cette facon est bonne)

$sql = "SELECT alerte FROM membre WHERE id_membre = $id";

C'est ca ?
0
Thamior Messages postés 264 Date d'inscription   Statut Membre Dernière intervention   47
 
Tu récupères comment les infos de ta requête recordset ?
0
Mano
 
Je les afiches de cette facon la <?php echo $row_Recordset1['alerte']; ?>
0
Mano > Mano
 
Ca y'est ca fonctionne !!!

Merci pour ta patience et ton aide :)
0
Mano > Mano
 
$id: $row_Recordset1['membre.id_membre'] ;

$sql = "SELECT alerte FROM membre WHERE id_membre = $id";

Voila la solution pfiou !
0
Thamior Messages postés 264 Date d'inscription   Statut Membre Dernière intervention   47
 
De rien :).

Bonne soirée et bon week end :).
0