Syntaxe php/sql

Résolu
francdrum Messages postés 858 Date d'inscription   Statut Membre Dernière intervention   -  
Yaninho Messages postés 530 Statut Membre -
Bonjour,
Je débute en php/sql ...
Normalement, ce bout de code ne devrait pas donner d'erreur, non ? :
(Je dis ça, vu que je viens de le trouver sur phpdebutant.org)
$query = "SELECT date,name,email,comment FROM $table ORDER BY date DESC";

Merci pour vos réponses, vu qu'il m'affiche :
Erreur SQL : 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 'ORDER BY date DESC' at line 1

--
Me zo ganet e-kreiz er mor
Configuration: Linux
Firefox 3.0.9

9 réponses

  1. doctormad Messages postés 456 Statut Membre 99
     
    Salut,

    Pour débugger du sql rien de plus simple, tu affiches ta requete :

    $query = "SELECT date,name,email,comment FROM $table ORDER BY date DESC";

    echo '$query;

    Et tu envoie le résultat sur ton interface MySql, ça te donnera une diée d'ou le problème vient.
    A première vue je dirais que la variable $table est invalide.

    Sinon un conseil d'optimisation les chaines php il vaut mieux les faire de cette manière :

    $query = 'SELECT date,name,email,comment FROM '.$table.' ORDER BY date DESC';

    C'est beaucoup + rapide à l'exécution.

    Et si ta variable $table vient d'une saisie utilisateur il faut la protéger en utilisant

    $query = 'SELECT date,name,email,comment FROM '.mysql_real_escape_string($table).' ORDER BY date DESC';
    2
  2. francdrum Messages postés 858 Date d'inscription   Statut Membre Dernière intervention   48
     
    ok
    super merci ;-)
    Je viens de continuer à mettre ce code à ma sauce

    Pour pouvoir par exemple modifier le sens (ascendant, ou descendant), je pensais à kke cose comme ça :
    $query = 'SELECT lien,titre,name,niveau,format FROM '.$table.' ORDER BY name '.$sens.'';
    Bizarrement, je n'ai pas d'erreur, mais ça ne change pas le sens ...

    Ceci avec un lien du genre :
    /index.php?page=part&sens=desc

    Pô facile de coder avec des moufles .... ;-)
    0
  3. francdrum Messages postés 858 Date d'inscription   Statut Membre Dernière intervention   48
     
    Quelqu'un aurait il une petite idée, svp ?
    Merci ;-)
    0
    1. Yaninho Messages postés 530 Statut Membre 63
       
      as tu récupéré ta variable sens ?

      $sens = $_GET['sens'];
      0
  4. francdrum Messages postés 858 Date d'inscription   Statut Membre Dernière intervention   48
     
    Oooops .... :-)
    Je focalisait sur la syntaxe, et j'oubliais le principal
    Merci
    0
    1. Yaninho Messages postés 530 Statut Membre 63
       
      De rien ;)
      0
      1. Yaninho Messages postés 530 Statut Membre 63 > Yaninho Messages postés 530 Statut Membre
         
        Penses a mettre le sujet en résolu ;)
        0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. francdrum Messages postés 858 Date d'inscription   Statut Membre Dernière intervention   48
     
    Pour aller un peu plus loin
    Mais là, c'est sur, je sais vraiment pas ! C'est pas mes yeux qui vont mal !! LOL

    Est ce possible losqu'on click sur les liens en haut de tableau, d'inverser automatiquement l'ordre
    Je m'explique :
    Avec un lien du genre :
    /index.php?page=part&tri=name&sens=desc
    si on reclick dessus, ça fait :
    /index.php?page=part&tri=name&sens=asc

    Par exemple dans mon mon phpMyAdmin, ça marche comme ça
    Merci
    0
    1. Yaninho Messages postés 530 Statut Membre 63
       
      dans ta case du tableau tu peux mettre (mais ya surement plus propre...)

      <?php
      if($_SERVER['REQUEST_URI'] == "/index.php?page=part&tri=name&sens=desc "
      {
      ?>
        <a href="/index.php?page=part&tri=name&sens=asc ">blabla</a>
      <?php } else { ?>
         <a href="/index.php?page=part&tri=name&sens=desc">blabla</a>
      <?php } ?>
      
      0
  7. francdrum Messages postés 858 Date d'inscription   Statut Membre Dernière intervention   48
     
    Ah ok, avec else ...
    J'essaie de mettre ça
    Ca ne fait rien si c'est mélangé avec tout le reste du code qui va chercher les données dans la base ?
    0
    1. Yaninho Messages postés 530 Statut Membre 63
       
      Tout dépend comment ton site est organisé. Je veux dire par la est-ce que ton affichage et ton traitement sont dans le même fichier ou pas ?
      0
  8. francdrum Messages postés 858 Date d'inscription   Statut Membre Dernière intervention   48
     
    Oui, tout est dans le même
    Ok, impec, pour le 1er click
    avec une ")" à la fin de la 1ere ligne ;-)

    Mais en fait, je voudrait que à chaque fois, ça inverse
    Genre if asc => desc, if desc => asc
    En remettant la même chose, mais inversée ?
    Hihi, ça va finir par faire 15 kms ça, vu que je le mets sur 4 liens :-)
    0
    1. Yaninho Messages postés 530 Statut Membre 63
       
      Oui pour le ) c'est un tit oubli ^^

      Heu ben normalement ca doit marcher pour le retour aussi avec le else, sinon a la place du else, tu met
      <?php } elseif($_SERVER['REQUEST_URI'] == "........=asc")
      {
      ?>
        <a href=".........=desc">blabla</a>
      <?php } ?>
      
      0
  9. francdrum Messages postés 858 Date d'inscription   Statut Membre Dernière intervention   48
     
    Je viens tout simplement de tout rassembler, entre les <? ---- ?> avec le 1er code.
    C'était peut être ça, ou sinon, il y avait un espace en trop, avant des ", dans ce que tu avais écris, et j'ai enlevé les / en début de lien.
    Donc, en gros, je sais pas vraiment ce qui a fait que ça marche. ^_^
    En tous cas, merci pour ton aide, ça va impecc :-)
    0
  10. Yaninho Messages postés 530 Statut Membre 63
     
    De rien, n'oublies pas de mettre le sujet en résolu ;)
    0