Erreur de syntaxe php sql [Résolu/Fermé]

Signaler
Messages postés
456
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
16 septembre 2014
-
ideal23
Messages postés
456
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
16 septembre 2014
-
Bonjour,
j'ai une erreur syntaxe avec cette requête:
SELECT * FROM stripbd WHERE ( MONTH(date_saisie)=".$_GET['m']."  AND YEAR(date_saisie)=". $_GET['y'];

Avez-vous une idée
Merci







23 réponses

Bonjour

Enlève la parenthèse entre WHERE et MONTH : elle est inutile et tu oublies de la refermer.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 84199 internautes nous ont dit merci ce mois-ci

Messages postés
172
Date d'inscription
vendredi 30 juillet 2010
Statut
Membre
Dernière intervention
29 novembre 2013
14
Tu pourrais mettre ta requête Php SQL entièrement ?
Messages postés
456
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
16 septembre 2014
28
j'ai le message : Erreur de syntaxe près de ". $_GET['y'];
je ne vois pas ce que je peux mettre d'autre , la requête est entière
Messages postés
187
Date d'inscription
lundi 11 avril 2011
Statut
Membre
Dernière intervention
23 mars 2015
19
Salut,

Essaye avec :
$requete = "SELECT * FROM stripbd WHERE ( MONTH(date_saisie)='".$_GET['m']."'  AND YEAR(date_saisie)='". $_GET['y']."'";

Messages postés
456
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
16 septembre 2014
28
merci de vos réponses
malheureusement j'ai toujours la même erreur
Messages postés
456
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
16 septembre 2014
28
toujours la même erreur
Peux-tu nous donner les quelques lignes de script qui précèdent, jusqu'à celle là incluse ? ET fait un copier-coller du message exact ?
Messages postés
456
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
16 septembre 2014
28
voilà le projet complet
j'ai extrait sur une première page la totalité des enregistrements classés par mois.
J'ai une base avec les données suivantes succinctes :
Id date saisie titre
1 2011-04 01 chochotte
2 2011-04-04 tentative
3 2011-03-11 bath
Sur une page stripbd.php j'ai crée une requête sql
SELECT DISTINCT MONTH(date_saisie) AS mois, YEAR(date_saisie) AS annee
FROM stripbd
GROUP BY mois, annee

Je veux à ce niveau avec group by ceci: le mois 4 groupé
Mois année voir
3 2011 voir
4 2011 voir
Sur le lien voir j'ai créé un lien suivant pour afficher les enregistrements de chaque mois sur une autre page:
essaibd.php?m=<?php echo $row_recordset1['mois']; ?>&y=<?php echo $row_recordset1['annee']; ?>

Sur cette seconde page , J'ai un problème pour extraire dans ma requête sql
tous les enregistrements identiques portant sur le mois 04, il ne faut plus qu'ils soient groupés.
SELECT * FROM stripbd WHERE ( MONTH(date_saisie)=".$_GET['m']."  AND YEAR(date_saisie)=". $_GET['y'];

cette dernière requête ne fonctionne pas: Erreur de syntaxe près de ". $_GET['y'];
Merci de s'intéresser à mon problème
Messages postés
319
Date d'inscription
lundi 23 juillet 2007
Statut
Membre
Dernière intervention
28 mars 2012
30
Bonjour,

Tu as toujours une parenthèse ouverte qui ne se ferme jamais et tu as un espace inutile entre YEAR(date_saisie)=". et $_GET['y'];

Pour être correct, ta requête doit ressembler à ça :
SELECT * FROM stripbd WHERE MONTH(date_saisie)=".$_GET['m']."  AND YEAR(date_saisie)=".$_GET['y'];

Messages postés
456
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
16 septembre 2014
28
Parse error: parse error in C:\Program Files\EasyPHP5.3.0\www\lucie1\essaibd.php on line 38 dans le navigateur

et Erreur de syntaxe près de ". $_GET['y'];
avec dreamweaver
Eastchild
Messages postés
319
Date d'inscription
lundi 23 juillet 2007
Statut
Membre
Dernière intervention
28 mars 2012
30
Juste une question, est-ce que tu appelles ta requête SQL dans une variable ?

Edit : Je viens de voir que tu n'as pas retirer l'espace entre le . et ton $_GET
Je répète : Peux-tu nous donner les quelques lignes de script qui précèdent, jusqu'à celle là incluse ? Et quelle est la ligne 38 ?
Ça ne m'étonnerait pas que l'erreur vienne d'avant.
Messages postés
456
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
16 septembre 2014
28
mysql_select_db($database_cnx, $cnx);
$query_Recordset1 = "SELECT * FROM stripbd WHERE MONTH(date_saisie)=".$_GET['m']."  AND YEAR(date_saisie)=".$_GET['y'];";"
$Recordset1 = mysql_query($query_Recordset1, $cnx) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
Messages postés
6709
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2015
1 233
Bonjour,

Et comme ça, c'est pas plus simple?

$xdate = $_GET['y']."-".$_GET['m'];
$sql = "SELECT * FROM stripbd WHERE date_saisie Like '$xdate%'";


A+
On verra la requête plus tard, pour l'instant elle n'est même pas soumise à mysql à cause de la parse error.
Tu as un ";" qui traîne à la fin de ta requête, mais il doit y avoir autre chose, car il produit un message d'erreur différent de celui que tu as annoncé.
Et pourquoi ne veux-tu pas répondre à toutes les questions ? Si on ne sait pas quelle est la ligne 38 (celle du message d'erreur, ça fausse l'analyse.
Messages postés
456
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
16 septembre 2014
28
mysql_select_db($database_cnx, $cnx);
$query_Recordset1 = "SELECT * FROM stripbd WHERE ( MONTH(date_saisie)=".$_GET['m']."  AND YEAR(date_saisie)=". $_GET['y']; ";"
$Recordset1 = mysql_query($query_Recordset1, $cnx) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);

ligne 38:
$Recordset1 = mysql_query($query_Recordset1, $cnx) or die(mysql_error());


Parse error: parse error in C:\Program Files\EasyPHP5.3.0\www\lucie1\essaibd.php on line 38
$query_Recordset1 = "SELECT * FROM stripbd WHERE ( MONTH(date_saisie)=".$_GET['m']." AND YEAR(date_saisie)=". $_GET['y']; ";"
retire les 3 derniers caractères ";"
Messages postés
456
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
16 septembre 2014
28
Erreur de syntaxe près de '=
Notice: Undefined variable: row_recordset1 in C:\Program Files' à la ligne 1
Merci encore
Est-ce à dire que tu as maintenant une erreur dès la 1ère ligne ???
Pour ta variable non définie, fais attention : $row_recordset1 et $row_Recordset1 ça n'est pas la même chose
Messages postés
456
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
16 septembre 2014
28
$query_Recordset1 = "SELECT * FROM stripbd WHERE ( MONTH(date_saisie)=".$_GET['m']." AND YEAR(date_saisie)=". $_GET['y'];

Erreur de syntaxe près de '' à la ligne 1
sans les 3 derniers caractères
Messages postés
456
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
16 septembre 2014
28
stop stop
je crois bien que c'est bon
j'ai enlevé la parenthèse ici ( MONTH(date_saisie)
avant MONTH
1 2