Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/08/2006, 22h12   #1
Invité régulier
 
Inscription : août 2006
Messages : 17
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 17
Points : 7
Points : 7
Par défaut [SQL] La valeur d'une variable ne semble pas être prise en compte

Bonjour a vous .

Je me suis lancé dans un petit projet personnel et qui est devenu plus grand que je ne le pensais. J'ai donc me mettre à php mais depuis hier je bute sur un probleme.

Alors voilà mon code.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
<?
 
	$heros='Arthur';
	mysql_connect('localhost','root','') or die("erreur de connection BDD");
	mysql_select_db ('legendes') or die ("erreur de selection BDD");
	#commande SQL retournant le chemin de l'image associée au nom du personnage choisi
	$query = "SELECT lieu_image FROM heros WHERE noms = '$heros';";
 
	#echo $query;
	#execution de la requete	
	$result = mysql_query($query);
 
	        while($images = mysql_fetch_array($result));
		   {
		      echo $images['lieu_image'];
		   }
	mysql_close() or die ("erreur de fermeture BDD");
 
?>
<div id="box3">
	<img src="./images/roi_arthur.jpg">	
</div>
J'ai mis aussi les 3 lignes de html qui suivent (qui sera remplacé par le php dés que sa marche)

Je stocke donc le chemin d'images en fonctions de noms de personnage dans ma base de donnée et je souhaite que la variable $image prenne la valeur du chemin.

La requête sql semble correcte en fonctionnelle (de plus en toute logique et si je n'ai pas fait d'erreur de conception de la base la requête sql ne peut sortir qu'un seul enregistrement).

J'arrive donc à mon probleme : en l'état actuel
echo $images['lieu_image'];
devrait afficher le chemin determiner (soit dans l'exemple : ./images/roi_arthur)

Hors sur la page web rien ne s'affiche ! Moi je ne comprends pas mais je debute .
J'ai essayer plusieurs options (comme _assoc ou _row ; mettre de guillemets simple ou double avant et apres la variable dans le echo $image mais rien ne marche : voir sa empire sévère).

Comment y remédier ?

Merci à vous d'avance.
oroumgolok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2006, 00h47   #2
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
C'est peut être un problème de casse, vérifies les données dans ta bdd pour voir s'il y a aucun différence de ce coté. Sinon tu peux utiliser les fonction UPPER ou LOWER qui permettront de retirer les problèmes de casse.

Si ca fonctionne toujours pas, il se peut que le champ nom dans ta bdd contienne des espaces qui devait être présent lors de l'insertion, donc pense à utiliser la fonction TRIM.

Pour finir voici la liste de toute les fonctions SQL possibles, jettes y un oeil : Fonctions de chaînes de caractères
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2006, 08h49   #3
Membre régulier
 
Inscription : août 2006
Messages : 78
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 78
Points : 71
Points : 71
Code :
1
2
3
4
5
6
 
$query = "SELECT lieu_image FROM heros WHERE noms = '$heros'";
while($images = mysql_fetch_object($result));
		   {
		      echo $row->lieu_image;
		   }
essaie avec sa, chez moi sa marche
PinGu- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2006, 09h00   #4
Membre chevronné
 
Avatar de gerald2545
 
Inscription : février 2003
Messages : 643
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 643
Points : 660
Points : 660
Citation:
essaie avec sa, chez moi sa marche
je doute tu as dû oublié quelquechose
Citation:
$query = "SELECT lieu_image FROM heros WHERE noms = '$heros'";
$result = mysql_query($query);
while($images = mysql_fetch_object($result));
{
echo $row->lieu_image;
}
ce serait peut-être pas mal d'afficher les erreurs potentielles :
Citation:
$result = mysql_query($query) or die mysql_error();
gerald2545 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2006, 10h03   #5
Invité régulier
 
Inscription : août 2006
Messages : 17
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 17
Points : 7
Points : 7
@ Kerod : J'ai tout verifier quant à la casse ou à des espaces dans ma base de donnée. Ce n'est pas le cas.

Pour les autre :

Le texte ne s'affiche pas !

Citation:
$result = mysql_query($query) or die mysql_error();
Si j'utilise çà, j'ai droit à un parse error.

Citation:
$result = mysql_query($query) or die (erreur);
mais çà, ne me renvois rien.
oroumgolok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2006, 10h10   #6
Expert Confirmé Sénior
 
Avatar de raptor70
 
Cyril Doillon
Inscription : septembre 2005
Messages : 3 191
Détails du profil
Informations personnelles :
Nom : Cyril Doillon
Âge : 27

Informations forums :
Inscription : septembre 2005
Messages : 3 191
Points : 5 326
Points : 5 326
Envoyer un message via MSN à raptor70
Pense au $ :
$result = mysql_query($query) or die ($erreur);
ou au quote :
$result = mysql_query($query) or die ('erreur');
__________________
Mes Tutos DirectX, OpenGL, 3D : http://raptor.developpez.com/
raptor70 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2006, 10h17   #7
Invité régulier
 
Inscription : août 2006
Messages : 17
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 17
Points : 7
Points : 7
En effet dans mon code d'origine il ya bien des quotes.
oroumgolok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2006, 23h31   #8
Invité régulier
 
Inscription : août 2006
Messages : 17
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 17
Points : 7
Points : 7
J'ai enfin trouver l'erreur.
C'etait juste un point virgule ; en trop

voila le code juste.
Code :
1
2
3
4
while($images = mysql_fetch_array($result))
           {
              echo $images['lieu_image'];
           }
au lieu de
Code :
1
2
3
4
 while($images = mysql_fetch_array($result));
           {
              echo $images['lieu_image'];
           }
Comment se prendre la tête pour tres peu de choses.
Merci quand même a vous pour m'avoir aider a m'orienter.

Maintenant je vais pouvoir avancer mon petit site vu que 80 % de ce que je comptais faire passait par l'adaptation de ce code.
oroumgolok est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h15.


 
 
 
 
Partenaires

Hébergement Web