Page 1 sur 1

probleme de requete

Posté : 13 avr. 2006, 11:48
par tinou
voila je desire selectionner des données, concernant des participants a un championnat, dans ma base et ce la me ressort une erreur de syntaxe que je ne voie pas. :evil:

Pourriez vous m'aider svp. Merci d'avance. :D
$requete='SELECT * FROM participant WHERE as="'.$ass.'" AND academie="'.$acad.'" AND genre="'.$genre.'"';

PLEAAASSSSEE HEEEELLLLLPPPPP :)

Posté : 13 avr. 2006, 11:54
par Ryle
Ton erreur vient du fait qu'en sql, les chaines de caractères sont délimités par des apostrophes et non pas par des guillemets. Tu peux sois inverser tes guillemets et tes apostrophes (ce qui sera je pense le plus lisible) soit mettre un antislash (caractère d'échappement) devant pour que php sache qu'il s'agit du caractère apostrophe et pas "fin de chaine" :
$requete="SELECT * FROM participant WHERE as='".$ass."' AND academie='".$acad."' AND genre='".$genre."'";  

Posté : 13 avr. 2006, 11:55
par mere-teresa
Peux tu faire echo $requete et copier-coller la requête (avec les variables remplacées par leurs valeurs) que tu obtiens dans IE ou Firefox ?

Re: probleme de requete

Posté : 13 avr. 2006, 12:41
par sadeq
voila je desire selectionner des données, concernant des participants a un championnat, dans ma base et ce la me ressort une erreur de syntaxe que je ne voie pas. :evil:

Pourriez vous m'aider svp. Merci d'avance. :D
$requete='SELECT * FROM participant WHERE as="'.$ass.'" AND academie="'.$acad.'" AND genre="'.$genre.'"';

PLEAAASSSSEE HEEEELLLLLPPPPP :)
L'erreur est simple : le champ nommé "as" pose problème car le mot "as" est un mot-clé réservé par SQL utilisé pour créer un alias (surnom de champ ou de table)

Pour corriger l'erreur il faut délimiter le nom "as" de ton champs entre `` (anti-quotes = ALT-Gr+`+Espace)

Correction :
$requete='SELECT * FROM participant WHERE `as`="'.$ass.'" AND academie="'.$acad.'" AND genre="'.$genre.'"';

Posté : 13 avr. 2006, 14:27
par tinou
Mer ci bcp salek. Ca y est ca marche. Si j'ai un autre probleme je sais a qui m'adresser. Encore merci car je suis en plein stage :lol:

Posté : 13 avr. 2006, 14:37
par tinou
voila je suis deja de retour :?
Que signifie cette erreur svp :

Column count doesn't match value count at row 1

Merci d'avance pour votre réponse

Posté : 13 avr. 2006, 14:55
par mere-teresa
Column count doesn't match value count at row 1
Le nombre de colonnes ne correspond pas au nombre de valeurs.

(Requête d'insertion ?)

Posté : 13 avr. 2006, 15:08
par tinou
oui c une requete d'insertion mais je comprend pas elle marchait nickel ya meme pas une heure. Jsuis sur le cul. Voila mon code au cas ou :

d'abord mon tableau :
echo'<tr>';
                                           echo'<td class="tdconfirm"><center>N°</center></td>';
                                           echo'<td class="td2confirm"><center>Nom</center></td>';
                                           echo'<td class="td2confirm"><center>Prénom</center></td>';
                                           echo'<td class="td2confirm"><center>License FFSU</center></td>';
                                           echo'<td class="td2confirm"><center>Club Civil/Niveau</center></td>';
                                           echo'<td class="td3confirm"><center>Taille</center></td>';
                                        echo'</tr>';
                                        echo'<form action="confirmation.php" method="POST">';
                                        while($i<=$nb)
                                        {
                                                echo'<tr>';
                                                    echo'<td><center><input name="num'.$i.'" type="text" value="" size="1"></center></td>';
                                                    echo'<td><center><input name="nom'.$i.'" type="text" value=""></center></td>';
                                                    echo'<td><center><input name="prenom'.$i.'" type="text" value=""  size="15"></center></td>';
                                                    echo'<td><center><input name="license'.$i.'" type="text" value=""  size="15"></center></td>';
                                                    echo'<td><center><input name="civil'.$i.'" type="text" value=""></center></td>';
                                                    echo'<td><center><input name="taille'.$i.'" type="text" value="" size="2"></center></td>';
                                                echo'</tr>';
                                                $i++;
                                        }
et enfin ma requete:
while($i<=$nb)
                                   {
                                           $num=$_POST['num'.$i.''];
                                           $nom=$_POST['nom'.$i.''];
                                           $prenom=$_POST['prenom'.$i.''];
                                           $license=$_POST['license'.$i.''];
                                           $civil=$_POST['civil'.$i.''];
                                           $taille=$_POST['taille'.$i.''];

                                        $requete2='INSERT INTO participant VALUES("","'.$num.'","'.$nom.'","'.$prenom.'","'.$license.'","'.$civil.'","'.$taille.'","'.$ass.'","'.$academie.'")';
                                        mysql_query($requete2) or die(mysql_error());
                                        $i++;
                                   }
Merci d'avance pour le coup de main :lol:

Posté : 13 avr. 2006, 15:14
par mere-teresa
Ta requête ne spécifie pas le nom des champs avant le mot clef VALUES

Posté : 13 avr. 2006, 15:22
par tinou
je n'ai jamais eu besoins de le faire jusqu'a present. C bizarre quand même :shock:

Posté : 13 avr. 2006, 15:23
par tinou
c bon je vien de trouver mecci quand meme pour ton aide