Erreur de syntaxe près de 'where

Résolu
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
Configuration: Windows XP
Internet Explorer 6.0

8 réponses

  1. Modérateur
    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 '); 
    0
    1. 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...
      0
      1. Modérateur
        Salut.

        C'est juste que PHP n'interprète pas les variables entre guillemets, donc il faut faire :
        '... =\''.$classe.'\''
        -1
        1. Merci Ssylvainsab

          OK, je vais essayer!
          A+
          -1
          1. 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+
            -1
            1. Trop fort
              Merci

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

              Encore merci
              -1
              1. Modérateur
                De rien :-)

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

                a plus
                -1
                1. Y a des chances que ça arrive, mais faut que je cherche, y a que comme ça j'apprendrais.

                  Merci

                  A+
                  -1