IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Probleme de syntaxe?


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 208
    Par défaut Probleme de syntaxe?
    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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    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

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Si $_POST['specialiste'] n'est pas défini, $spec_selectionne ne prend pas de valeur et tu l'utilises quand meme dans ta requete.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 208
    Par défaut
    je viens de definir $_POST= specialiste;
    ça change rien
    mais le plus etonnant c'est qu'en ligne,avec le meme script,ya aucune erreur!
    vois sur ==>edeelic.com/specialiste

    y aurai pas un truc du genre php4 en php5 qui expliquerai qu'une erreur soit affichée...?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ton serveur Wamp doit simplement afficher toutes les erreurs, y compris les NOTICE, donc cela révèle des problèmes qui n'entravent pas le fonctionnement du site mais qui sont plus de l'ordre de la logique de conception.

    ie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("SELECT * FROM " . $table);
    si $table n'est pas défini, il ne se passera rien à l'écran
    si $table est défini ma requete fonctionne.
    visuellement on pourrait croire que tout est bon, en fait mon code ne traite pas correctement les erreurs.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. probleme de syntaxe sql dans VB
    Par njac dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 20/05/2005, 14h41
  2. [VB.NET] Probleme de syntaxe
    Par microthib dans le forum Windows Forms
    Réponses: 4
    Dernier message: 17/03/2005, 13h49
  3. probleme fonction syntaxe
    Par gIch dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 28/02/2005, 09h52
  4. [Débutante] Problèmes de syntaxe
    Par new_wave dans le forum Prolog
    Réponses: 4
    Dernier message: 02/11/2004, 18h39
  5. Problemes de syntaxe
    Par maahta dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 01/10/2003, 13h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo