Erreur sql syntaxe

saryas Messages postés 20 Date d'inscription mercredi 13 février 2008 Statut Membre Dernière intervention 3 octobre 2009 - 25 juil. 2009 à 16:04
nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 - 27 juil. 2009 à 14:24
Bonjour,
quelqu'un pourait m'aider pour trouver l'erreur dans le code suivant:
<?php

include("connexion.php");

$refrence=$_GET['id'];

//recuperer les info du vol
$sql='SELECT *
FROM vol WHERE $refrence=ref_vol ';
connectAdministrateur();

$req= mysql_query($sql) or die ('Erreur sql'.$sql.'
'.mysql_error());

while ($result= mysql_fetch_array($req))
{

echo( '<tr>
<td> '.$result['ref_vol'].' </td>
<td> '.$result['aeo_depart'].' </td>
<td> '.$result['aeo_arrive'].'</td>
<td> '.$result['date_depart_vol'].' </td>
<td> '.$result['heure_depart'].' </td>
<td> '.$result['heure_arrive'].' </td>
<td> '.$result['classe_vol'].' </td>
<td> '.$result['prix'].' </td></tr>');
}

?>


ça m'affiche cette erreur:

Erreur sqlSELECT * FROM vol WHERE $refrence=ref_vol
Champ '$refrence' inconnu dans where clause

9 réponses

cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
25 juil. 2009 à 18:02
Ca devrait marcher.
A l'avenir, poste sur PHPCs.com

<?php
include("connexion.php");
$id=(int)$_GET['id'];

//récupérer les infos du vol
$sql="SELECT * FROM vol WHERE ref_vol=$id;";
connectAdministrateur();

$req= mysql_query($sql) or die ('Erreur sql'.$sql.'
'.mysql_error());
while ($result= mysql_fetch_array($req))
{
?>
<tr>
<td><?php echo($result['ref_vol']);?></td>
<td><?php echo($result['aeo_depart']);?></td>
<td><?php echo($result['aeo_arrivee']);?></td>
<td><?php echo($result['date_depart_vol']);?></td>
<td><?php echo($result['heure_depart']);?></td>
<td><?php echo($result['heure_arrivee']);?></td>
<td><?php echo($result['classe_vol']);?></td>
<td><?php echo($result['prix']);?></td>
</tr>
<?
}
?> 


---
VB.NET is good ... VB6 is better
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
25 juil. 2009 à 18:03
Et j'avais oublié : si tu as codé tes autres scripts comme ça, ils sont TOUS sensible à l'injection SQL, c'est à dire que n'importe petit hacker (même un crétin qui utilise des programmes de hack tout faits) peut démolir ta base.

---
VB.NET is good ... VB6 is better
0
saryas Messages postés 20 Date d'inscription mercredi 13 février 2008 Statut Membre Dernière intervention 3 octobre 2009
26 juil. 2009 à 12:31
mon code m'affiche certaines erreurs svp aidez moi à les courriger:
voici le code :
<?php

//***********************************information voyageur**********************

echo('
Saisissez les informations voyageur');
$ta_variable_utilise=$_POST['compteur_boucle'];
$adults=$_POST['adults'];
$enfants=$_POST['enfants'];

//************************************Client*****************************************

$i=0;
echo('<form method="post" action="information voyageur.php">');

echo(' le nombre de voyageur est : '.$ta_variable_utilise.'

');


echo'
<label>Civilité :
<select name="civ'.$i.'" >
<option value="Mr">Mr</option>
<option value="Mme">Mme</option>
<option value="Mlle">Mlle</option>
</select>
</label>
<label>Nom :</label>
<label>Prénom :</label>

';
$adults=$adults-1;
echo('<hr>');

//*******************************************Compagnons***********************************

for($i=1;$i<($ta_variable_utilise);$i++)
{
if($adults!=0)
{
echo'
<label>Civilité :
<select name="civ'.$i.'" >
<option value="Mr">Mr</option>
<option value="Mme">Mme</option>
<option value="Mlle">Mlle</option>
</select></label>
<label>Nom :</label>
<label>Prénom :</label>
';
$adults=$adults-1;
echo('<hr>');
}


//**********************************les enfants***************************************
elseif ($enfants!=0)
{
echo'
<label>Nom :</label>

<label>Prénom :</label>
<label>Né en:
<select name="an'.$i.'" >
<option value="2005">2005</option>
<option value="2004">2004</option>
<option value="2003">2003</option>
<option value="2002">2002</option>
<option value="2001">2001</option>
<option value="2000">2000</option>
<option value="1999">1999</option>
<option value="1998">1998</option>
<option value="1997">1997</option>
</select></label>


';
$enfants=$enfants-1;

}
//**************************************les bebes************************************
else
{

echo'
<label>Nom :</label>
<label>Prénom :</label>

<label>Né en:
<select name="an'.$i.'" >
<option value="2009">2009</option>
<option value="2008">2008</option>
<option value="2007">2007</option>
<option value="2006">2006</option>
</select> </label>';

}
}
//*****************************email et numero de telephone du client******************************************
$i=0;
echo'<label>Email :</label>
<label>N° de téléphone :</label>

';
//***************************************************************************************************************
echo'';
echo'';

echo' </form>';



//***************************************************************************************************************






//ensuite on lance la boucle pour taiter les infos
if (isset($_POST['reserver']))
{
connectAdministrateur();
$ta_variable_utilise=$_POST['compteur_boucle'];
$adults=$_POST['adults'];

$i=0;
$civ = isset($_POST['civ'.$i])?$_POST['civ'.$i] : null;
$nom = isset($_POST['nom'.$i])?$_POST['nom'.$i] : null;
$prenom = isset($_POST['prenom'.$i])?$_POST['prenom'.$i] : null;
$email = isset($_POST['email'.$i])?$_POST['email'.$i] : null;
$tel = isset($_POST['tel'.$i])?$_POST['tel'.$i] :null;


$sql='INSERT INTO passager (`id_client1` ,`civ` ,`nom` ,`prenom` ,`email` ,`tel`)
VALUES ("0","'.$civ.'","'.$nom.' ","'.$prenom.'","'.$email.'","'.$tel.'")';

//maintenant je les inseres
mysql_query($sql) or die ('Erreur SQL !'.$sql.'
'.mysql_error());



//****************************************************************************************************************
// les compagnons

$id_client1 = mysql_insert_id();
for($i=1;$i<$ta_variable_utilise;$i++)
{

$civ = isset($_POST['civ'.$i])?$_POST['civ'.$i] : null;
$nom = isset($_POST['nom'.$i])?$_POST['nom'.$i] : null;
$prenom = isset($_POST['prenom'.$i])?$_POST['prenom'.$i] : null;
$an_de_naissance= isset($_POST['an'.$i])?$_POST['an'.$i]:null;

$requete='INSERT INTO compagnon VALUES
("0","'.$id_client1.'","'.$civ.'","'.$nom.'" ,"'.$prenom.'",'.((strlen($an_de_naissance)>0)?$an_de_naissance:'NULL').') ';







//maintenant je les inseres
mysql_query($requete) or die ('Erreur SQL !'.$requete.'
'.mysql_error());





}

}
?>
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
26 juil. 2009 à 14:19
J'vais pas tout te corriger non plus
Mais quelles sont tes erreurs ?

---
VB.NET is good ... VB6 is better
0

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

Posez votre question
saryas Messages postés 20 Date d'inscription mercredi 13 février 2008 Statut Membre Dernière intervention 3 octobre 2009
26 juil. 2009 à 20:06
voici les erreurs qu'il m'affiche :
Notice: Undefined index: compteur_boucle in D:\Agence de voyage\base agence\information voyageur.php on line 49

Notice: Undefined index: adults in D:\Agence de voyage\base agence\information voyageur.php on line 50

Notice: Undefined index: enfants in D:\Agence de voyage\base agence\information voyageur.php on line 51
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
27 juil. 2009 à 01:15
Arrête d'utiliser echo() pour afficher des tonnes d'HTML, utilise-le seulement dans le cas où tu n'affiche qu'un message. Et j'espère pour toi que tu n'as pas d'autres scripts : en production ce serait un désastre (n'importe quel petit hacker du dimanche démolirait ton site en moins de deux). Renseigne-toi sur l'injection SQL, le PHP en général (j'ai jamais vu un code aussi mal foutu) et le SQL tout court.

Ceci devrait fonctionner :
<?php

//***********************************information voyageur**********************

echo('
Saisissez les informations voyageur');
$nombre_voyageurs=$_POST['compteur_boucle'];
$adults=$_POST['adults'];
$enfants=$_POST['enfants'];

//************************************Client*****************************************

$i=0;
?>
<form method="post" action="informationsVoyageur.php">
Nombre de voyageurs : <?php echo($nombre_voyageurs);?>


<label>
    Civilité : 
    <select name="civ<?php echo($i)?>" >
        <option value="Mr">Mr</option>
        <option value="Mme">Mme</option>
        <option value="Mlle">Mlle</option>
    </select>
</label>
<label>Nom :"></label>
<label>Prénom :"></label>
<?php
$adults--;
echo('<hr>');

//*******************************************Compagnons***********************************

for($i=1;$i<$nombre_voyageurs;$i++)
{
    if($adults!=0)
    {
        ?>
<label>
    Civilité : 
    <select name="civ<?php echo($i)?>" >
        <option value="Mr">Mr</option>
        <option value="Mme">Mme</option>
        <option value="Mlle">Mlle</option>
    </select>
</label>
<label>Nom :"></label>
<label>Prénom :"></label>
<hr>
        <?php
        $adults--;
    }

//**********************************les enfants***************************************
    elseif ($enfants!=0)
    {
        ?>
<label>Nom :"></label>
<label>Prénom :"></label>
<label>
    Né en:
    <select name="an<?php echo($i)?>" >
        <option value="2005">2005</option>
        <option value="2004">2004</option>
        <option value="2003">2003</option>
        <option value="2002">2002</option>
        <option value="2001">2001</option>
        <option value="2000">2000</option>
        <option value="1999">1999</option>
        <option value="1998">1998</option>
        <option value="1997">1997</option>
    </select>
</label>


        <?php
        $enfants--;
    }

//**************************************les bebes************************************
    else
    {
        ?>
<label>Nom :"></label>
<label>Prénom :"></label>
<label>
    Né en:
    <select name="an<?php echo($i)?>" >
        <option value="2009">2009</option>
        <option value="2008">2008</option>
        <option value="2007">2007</option>
        <option value="2006">2006</option>
    </select>
</label>


        <?php
    }
}

//*****************************email et numero de telephone du client******************************************
$i=0;
?>
<label>Email :"></label>
<label>N° de téléphone :"></label>


">
">



</form>
<?php

//ensuite on lance la boucle pour taiter les infos
if (isset($_POST['reserver']))
{
    connectAdministrateur();
    $nombre_voyageurs=$_POST['compteur_boucle'];
    $adults=$_POST['adults'];

    $i=0;
    $civ = isset($_POST['civ'.$i])?mysql_real_escape_string($_POST['civ'.$i]) : null;
    $nom = isset($_POST['nom'.$i])?mysql_real_escape_string($_POST['nom'.$i]) : null;
    $prenom = isset($_POST['prenom'.$i])?mysql_real_escape_string($_POST['prenom'.$i]) : null;
    $email = isset($_POST['email'.$i])?mysql_real_escape_string($_POST['email'.$i]) : null;
    $tel = isset($_POST['tel'.$i])?mysql_real_escape_string($_POST['tel'.$i]) :null;


    $sql="INSERT INTO passager (`id_client1` ,`civ` ,`nom` ,`prenom` ,`email` ,`tel`) ";
    $sql.="VALUES (0,'$civ','$nom','$prenom','$email','$tel');"

    mysql_query($sql) or die ('Erreur SQL : '.$sql.'
'.mysql_error());



//****************************************************************************************************************
// les compagnons

    $id_client1 = mysql_insert_id();
    for($i=1;$i<$nombre_voyageurs;$i++)
    {

        $civ = isset($_POST['civ'.$i])?mysql_real_escape_string($_POST['civ'.$i]) : null;
        $nom = isset($_POST['nom'.$i])?mysql_real_escape_string($_POST['nom'.$i]) : null;
        $prenom = isset($_POST['prenom'.$i])?mysql_real_escape_string($_POST['prenom'.$i]) : null;
        $an_de_naissance= isset($_POST['an'.$i])?mysql_real_escape_string($_POST['an'.$i]) :null;

        $sql="INSERT INTO compagnon VALUES ";
        $sql.="(0,'$id_client1','$civ','$nom' ,'$prenom','";
        if (strlen($an_de_naissance)>0) $sql.=$an_de_naissance;
        else $sql.='NULL';
        sql.="');";
        
        mysql_query($sql) or die ('Erreur SQL : '.$sql.'
'.mysql_error());
    }
}
?> 


---
VB.NET is good ... VB6 is better
0
saryas Messages postés 20 Date d'inscription mercredi 13 février 2008 Statut Membre Dernière intervention 3 octobre 2009
27 juil. 2009 à 10:23
je sais que mon code est nul c'est normal je suis débutante mais votre code m'affiche toujour les meme erreurs :
Notice: Undefined index: compteur_boucle in D:\Agence de voyage\base agence\informationsvoyageur.php on line 12

Notice: Undefined index: adults in D:\Agence de voyage\base agence\informationsvoyageur.php on line 14

Notice: Undefined index: enfants in D:\Agence de voyage\base agence\informationsvoyageur.php on line 16
je crois que l'erreur viens de la page qui nous renvois à informationsvoyageur...
dans l'autre page j'ai utlisé :
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
27 juil. 2009 à 11:38
Apparemment le paramètre n'est pas envoyé.
Pourquoi ? J'en sais rien.

---
VB.NET is good ... VB6 is better
0
nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 1
27 juil. 2009 à 14:24
Bonjour,

Notice: Undefined index: adults


Un Undefined index in... signifie en général qu'on tente d'accéder à une variable non définie.

Que raconte un var_dump( $_POST ) dans le script en question ?

Quand ce type d eproblème arrive, on commence par tracer l'origine. Un var_dump aide souvent à déterminer ce qui peut clocher.
0
Rejoignez-nous