probleme de syntaxe? - PHP - Programmation
Marsh Posté le 27-03-2009 à 12:49:51
chanteur06 a écrit : voilà la fameuse: $query = "SELECT specialiste, adresse, code, ville, detail, tel FROM specialiste WHERE specialiste='$spec_selectionne' order by ville asc"; |
Oui, mais si je lis bien ton code, l'assignation se fait sous condition :
Code :
|
Pour les erreurs EasyPHP, il faudrait nous dire à quelle ligne ça correspond.
Et je dis "si je lis bien ton code" parce que c'est mal codé :
- Pour commencer, sois cohérent : <br> ou <br /> mais pas les deux. Et évite la balise <b> (dépréciée)
- Sans parler de modèle MVC, c'est bien de séparer un minimum la présentation du contenu. Parce que là, tu mélanges allégrement le code php avec le html.
Marsh Posté le 27-03-2009 à 12:53:12
Citation : voilà la fameuse: $query = "SELECT specialiste, adresse, code, ville, detail, tel FROM specialiste WHERE specialiste='$spec_selectionne' order by ville asc"; |
Au début, j'ai pensé au problème classique des simples quotes et des doubles quotes. Pour rappel, si un dollar se trouve quelque part entre deux simple quotes, il reste un dollar, alors que s'il se trouve entre deux double quotes, il est interprété comme étant le début du nom d'une variable. Mais le mieux est encore d'utiliser la concaténation avec le point. Donc, j'aurais essayé :
$query = "SELECT specialiste, adresse, code, ville, detail, tel FROM specialiste WHERE specialiste='".$spec_selectionne."' order by ville asc"; |
Mais le message indique que $spec_selectionne n'est pas défini, donc cela veut dire que le programme atteint la requête sans passer par la ligne dans le if qui définit cette variable.
Marsh Posté le 27-03-2009 à 15:30:51
Non, ni le placement dans le If ni le point devant $ ne change klk chose...!
Le plus étonnant c'est que ça fonctionne sans erreur sur le site en ligne chez OVH...
edeelic.com
Marsh Posté le 27-03-2009 à 15:49:00
chanteur06 a écrit : Non, ni le placement dans le If ni le point devant $ ne change klk chose...! |
C'est ton code je l'ai repris tel que... Je ne vois pas trop comment tu peux le placer "dans" le IF sachant qu'il y est déjà.
Ce que je voulais dire, c'est :
En gros tu as
Code :
|
SI ta condition n'est pas remplie, tu ne mets rien dans $spec_selectionne.
Du coup, $spec_selectionne n'est pas défini.
Du coup, tu as un message d'erreur Notice: Undefined variable: spec_selectionne.
1. Essaye de prendre le temps d'épurer ton code en dégageant d'un côté la présentation et de l'autre le code proprement dit (placé dans des fonctions que tu appelles dans la partie présentation).
2.Apprends à débugger un programme :
echo $mavariable; => te permet de voir si ce qu'elle contient est conforme à ce que tu attends
var_dump($mavariable); => pareil, mais détaille complétement le contenu de ta variable (y compris pour les tableaux et les objets)
En l'occurence, ici tu devrais vérifier le contenu de ton $_POST au début de ta page, le contenu de $spec_selectionne avant depasser ta requête, les requêtes et les résultats de tes requêtes...
Marsh Posté le 27-03-2009 à 11:59:31
Bonjour,
Voilà,je me demande pourquoi j'ai une erreur de variable indéfinie sur ce script en local avec WAMP et EASYPHP alors qu'il fonctionne tres bien en ligne (je l'ai repris pour modif en local).
wamp me donne une variable indéfinie
Notice: Undefined variable: spec_selectionne in C:\Program Files\wamp\www\dept\pagination3.php on line 242
voilà la fameuse: $query = "SELECT specialiste, adresse, code, ville, detail, tel FROM specialiste WHERE specialiste='$spec_selectionne' order by ville asc";
alors que deux lignes plus haut j'ai
$spec_selectionne =$_POST['specialiste'];
en plus,j'ai une notice use of an undefined constant "" assumed "" qui correspondrait à ça
<?php echo ($det_spec[$d]." ".à." " ); ?>...
En utilisant easyphp, j'ai encore plus d'erreur:
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\Program Files\EasyPHP 2.0b1\www\dept\pagination3.php on line 174
et
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\EasyPHP 2.0b1\www\dept\pagination3.php on line 245
en plus de la meme variable indefinie signalée sur wamp....
Mais je comprends pas.
Je joins la partie du script
si quelqu'un voit pourquoi.....?
Merci beaucoup