Syntaxe php/sql

Résolu/Fermé
francdrum Messages postés 853 Date d'inscription mardi 12 décembre 2000 Statut Membre Dernière intervention 4 février 2011 - 27 avril 2009 à 19:53
Yaninho Messages postés 484 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 30 août 2010 - 29 avril 2009 à 08:42
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
A voir également:

9 réponses

doctormad Messages postés 430 Date d'inscription mercredi 28 novembre 2007 Statut Membre Dernière intervention 2 avril 2015 99
27 avril 2009 à 20:31
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
francdrum Messages postés 853 Date d'inscription mardi 12 décembre 2000 Statut Membre Dernière intervention 4 février 2011 48
28 avril 2009 à 02:02
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
francdrum Messages postés 853 Date d'inscription mardi 12 décembre 2000 Statut Membre Dernière intervention 4 février 2011 48
28 avril 2009 à 14:51
Quelqu'un aurait il une petite idée, svp ?
Merci ;-)
0
Yaninho Messages postés 484 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 30 août 2010 63
28 avril 2009 à 14:52
as tu récupéré ta variable sens ?

$sens = $_GET['sens'];
0
francdrum Messages postés 853 Date d'inscription mardi 12 décembre 2000 Statut Membre Dernière intervention 4 février 2011 48
28 avril 2009 à 14:58
Oooops .... :-)
Je focalisait sur la syntaxe, et j'oubliais le principal
Merci
0
Yaninho Messages postés 484 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 30 août 2010 63
28 avril 2009 à 15:00
De rien ;)
0
Yaninho Messages postés 484 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 30 août 2010 63 > Yaninho Messages postés 484 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 30 août 2010
28 avril 2009 à 15:06
Penses a mettre le sujet en résolu ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
francdrum Messages postés 853 Date d'inscription mardi 12 décembre 2000 Statut Membre Dernière intervention 4 février 2011 48
28 avril 2009 à 15:09
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
Yaninho Messages postés 484 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 30 août 2010 63
28 avril 2009 à 15:14
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
francdrum Messages postés 853 Date d'inscription mardi 12 décembre 2000 Statut Membre Dernière intervention 4 février 2011 48
28 avril 2009 à 15:18
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
Yaninho Messages postés 484 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 30 août 2010 63
28 avril 2009 à 15:21
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
francdrum Messages postés 853 Date d'inscription mardi 12 décembre 2000 Statut Membre Dernière intervention 4 février 2011 48
28 avril 2009 à 15:47
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
Yaninho Messages postés 484 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 30 août 2010 63
28 avril 2009 à 15:50
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
francdrum Messages postés 853 Date d'inscription mardi 12 décembre 2000 Statut Membre Dernière intervention 4 février 2011 48
29 avril 2009 à 02: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
Yaninho Messages postés 484 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 30 août 2010 63
29 avril 2009 à 08:42
De rien, n'oublies pas de mettre le sujet en résolu ;)
0