Erreur de syntaxe près de 'where [Résolu/Fermé]

Signaler
Messages postés
142
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
6 avril 2011
-
 Antar -
Bonjour,

Je me lance dans le php et j'ai l'erreur :
Échec de la requête : Erreur de syntaxe près de 'where Classe = $classe' à la ligne 1

Cette erreur se déclenche à la ligne suivante:

$recclas = mysql_query('select * from composition ORDER BY Classe where Classe = $classe');

Je vous joins le début du code:

<?php

$classe = "90-91 CM1";

$conn = mysql_connect('localhost', 'root', '');
if (!$conn) { die('Impossible de se connecter : ' . mysql_error());
}
mysql_select_db('ecole');

$recnbr = mysql_query('select * from eleves_par_classe ORDER BY Classe' );
if (!$recnbr) { die('Échec de la requête : ' . mysql_error());
}

$Nbr = $recnbr['Nbr'];

$ctr = 1;

$recclas = mysql_query('select * from composition ORDER BY Classe where Classe = $classe');

if (!$recclas) { die('Échec de la requête : ' . mysql_error());
}

etc

Quelqu'un peut'il m'aider.

Merci

8 réponses

Messages postés
2883
Date d'inscription
dimanche 30 juillet 2006
Statut
Modérateur
Dernière intervention
15 août 2020
795
Ah, je vois ton problème :
1 - Tu mets le order by avant le where
2 - Tu utilise des guillemets pour fermer au lieu d'apostrophes.


C'est peut-être aussi parce que tu as les magic_quotes d'activées.
Essaye :
if(get_magic_quotes_gpc())
  $classe=stripslashes($classe);
$recclas=mysql_query('select * from composition where Classe=\''.$classe.'\' ORDER BY Classe '); 
Bonjour j'ai une page videos sur mon site mais voilà quand j'essaye d'y acceder j'ai ce message d'erreur :

Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id='46'' at line 1

46 c'est l'id d'une de mes videos.

Je pense que la requête c'est celle-ci :

$product_check_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");
$product_check = tep_db_fetch_array($product_check_query);

Si quelqun a une idée merci d'avance...
Messages postés
2883
Date d'inscription
dimanche 30 juillet 2006
Statut
Modérateur
Dernière intervention
15 août 2020
795
Salut.

C'est juste que PHP n'interprète pas les variables entre guillemets, donc il faut faire :
'... =\''.$classe.'\''
Messages postés
142
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
6 avril 2011
3
Merci Ssylvainsab

OK, je vais essayer!
A+
Messages postés
142
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
6 avril 2011
3
Probleme!
Voila la ligne telle que je l'ai corrigée:
$recclas = mysql_query('select * from composition ORDER BY Classe where Classe = \".$classe.'\");
et l'erreur que j'ai
Warning: Unexpected character in input: '\' (ASCII=92) state=1
J'ai un editeur syntaxique de couleur et le dernier slashe est de couleur différente?
A+
Messages postés
142
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
6 avril 2011
3
Trop fort
Merci

Maintenant c'est plus loin que ca coince, mais je vais voir.

Encore merci
Messages postés
2883
Date d'inscription
dimanche 30 juillet 2006
Statut
Modérateur
Dernière intervention
15 août 2020
795
De rien :-)

Fais un autre post si tu as un autre problème.

a plus
Messages postés
142
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
6 avril 2011
3
Y a des chances que ça arrive, mais faut que je cherche, y a que comme ça j'apprendrais.

Merci

A+