Probleme de syntaxe?

Fermé
chanteur06 Messages postés 127 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 14 septembre 2010 - 27 mars 2009 à 11:53
chanteur06 Messages postés 127 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 14 septembre 2010 - 27 mars 2009 à 16:59
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

if(isset($idr) && $idr != -1)
{
/* Création de la requête pour avoir les specialistes de ce departement */
$sql2 = "SELECT `id_specialiste`, `specialiste`,`ville`,`detail`".
" FROM `specialiste`".
" WHERE `id_departement` = ". $idr ."".
" ORDER BY `ville`;";
if($connexion != false)
{
$rech_spec = mysql_query($sql2, $connexion);
/* Un petit compteur pour les specialistes */
$nd = 0;
/* On crée trois tableaux pour les numéros et les noms des specialistes */
$code_spec = array();
$nom_spec = array();
$ville_spec = array();
$det_spec = array();
/* On va mettre les numéros et noms des specialistes dans les trois tableaux */
while($ligne_spec = mysql_fetch_assoc($rech_spec))
{
array_push($code_spec, $ligne_spec['id_specialiste']);
array_push($nom_spec, $ligne_spec['specialiste']);
array_push($ville_spec, $ligne_spec['ville']);
array_push($det_spec, $ligne_spec['detail']);
$nd++;
}
/* Maintenant on peut construire la liste déroulante */
?>
<select name="specialiste" id="specialiste" >
<?php
for($d = 0; $d<$nd; $d++)
{
?>
<option value="<?php echo($nom_spec[$d]); ?>"<?php echo((isset($spec_selectionne) && $spec_selectionne == $code_spec[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_spec[$d]." "); ?>
<br>
<br />
<?php echo ($det_spec[$d]." ".à." "); ?>
<br>
<br />
<?php echo($ville_spec[$d]); ?></option>
<?php
}
?>
</select>
<?php
}
/* Un petit coup de balai */
mysql_free_result($rech_spec);
}
?>

<input type="submit" name="ok" id="ok" value="Envoyer" />
<br />
<?php
if(isset($_POST['ok']) && isset($_POST['specialiste']) && $_POST['specialiste'] != "")
{
$spec_selectionne =$_POST['specialiste'];

?>
<br />Votre choix<br /> <b><?php echo($spec_selectionne); ?></b>
<?php
}
?>

<?php

$query = "SELECT specialiste, adresse, code, ville, detail, tel FROM specialiste WHERE specialiste='$spec_selectionne' order by ville asc";
$result = mysql_query($query);

while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo "<br>"."<strong>{$row['detail']}</strong>"." " ."<br>{$row['adresse']}"." "."{$row['code']}"." "."{$row['ville']}"." "." "."<br><b>{$row['tel']}"."<br></b> ";

}

si quelqu'un voit pourquoi.....?
Merci beaucoup

1 réponse

clonedaemon Messages postés 22 Date d'inscription vendredi 7 novembre 2008 Statut Membre Dernière intervention 16 décembre 2010 1
27 mars 2009 à 12:42
Hello,


<?php
if(isset($_POST['ok']) && isset($_POST['specialiste']) && $_POST['specialiste'] != "")
{
         $spec_selectionne =$_POST['specialiste'];

?>
<br />Votre choix<br /> <b><?php echo($spec_selectionne); ?></b>
<?php
}

// Ta variable $spec_selectionne n'est defini que si le formulaire est posté
?>

<?php
// Ta requete n'est pas dans le "if" elle s'exécute a chaque fois, mais la variable $spec_selectionne n'est pas defini si le formulaire n'est pas posté donc la requete doit ce trouver dans le "if"

$query = "SELECT specialiste, adresse, code, ville, detail, tel FROM specialiste WHERE specialiste='$spec_selectionne' order by ville asc";
$result = mysql_query($query);

while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo "<br>"."<strong>{$row['detail']}</strong>"." " ."<br>{$row['adresse']}"." "."{$row['code']}"." "."{$row['ville']}"." "." "."<br><b>{$row['tel']}"."<br></b> ";

} 
0
chanteur06 Messages postés 127 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 14 septembre 2010 1
27 mars 2009 à 15:33
oui l'envoi est "appelé",le formulaire doit etre posté....
placé dans le IF ne change rien..;
Le plus etonnant c'est que ça fonctionne avec le meme script hebergé chez ovh
===> edeelic.com
0
clonedaemon Messages postés 22 Date d'inscription vendredi 7 novembre 2008 Statut Membre Dernière intervention 16 décembre 2010 1 > chanteur06 Messages postés 127 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 14 septembre 2010
27 mars 2009 à 16:09
Dans ce cas declare la variable $spec_selectionne plus haut dans ta page

$spec_selectionne="";

OVH n'affiche peut etre pas les erreurs de variable non déclaré.
0
chanteur06 Messages postés 127 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 14 septembre 2010 1 > clonedaemon Messages postés 22 Date d'inscription vendredi 7 novembre 2008 Statut Membre Dernière intervention 16 décembre 2010
27 mars 2009 à 16:48
non toujours pas...
Mais ovh affiche aussi la ville du spécialiste dans le tableau alors que là j'ai
use of undefined constant
.....
Laisse tomber,c'est une bizzarerie,mais j'aurais bien voulu comprendre....
0
chanteur06 Messages postés 127 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 14 septembre 2010 1 > chanteur06 Messages postés 127 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 14 septembre 2010
27 mars 2009 à 16:59
c'est juste que les erreurs sont affichées...il suffit de décocher!
0