help pour erreur de syntaxe sur requete

niome
Invité n'ayant pas de compte PHPfrance

25 mars 2005, 14:46

bonjour tout le monde

j'ai un probleme sur une requete que je ne sais pas resoudre :

$select = 'select nom,prenom FROM auteurs WHERE nom LIKE \''.$lettre.'%\' order by nom ASC limit '.$limite.','.$nombre';
merci d'avance

ViPHP
ViPHP | 2144 Messages

25 mars 2005, 14:47

C'est quoi le problême exactement ?? :wink: :wink:

niome
Invité n'ayant pas de compte PHPfrance

25 mars 2005, 14:48

le probleme c'est que ca marche pas :p

j'ai une erreur "Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING" sur cette ligne, je pense que j'ai mal formulé ma requete.

eSp
Eléphant du PHP | 56 Messages

25 mars 2005, 14:54

Salut,

Essaies ceci:
<?php
$select = 'select nom, prenom FROM auteurs WHERE nom LIKE '.$lettre%' ORDER BY nom ASC LIMIT '.$limite.','.$nombre; 
?>
++

niome
Invité n'ayant pas de compte PHPfrance

25 mars 2005, 14:57

merci eSp (et merci aussi à Fab du chat)

ca fonctionne!

excelllllllllllente journée à tous :) et encore merci pour votre aide

Mammouth du PHP | 19672 Messages

25 mars 2005, 15:21

Ne mélangez pas le PHP et les chaines de caractère, vous allez avoir des surprises sinon. Ça fonctionne, tant mieux, mais la programmation exige de la rigueur; si vous prenez de mauvaises habitudes de codage, vous allez au devant de surprises et aurez à chercher pendant des heures le problème s'il en survient un.
<?php
/* Définitions de variables de test */
$lettre = "a";
$limite = 3;
$nombre = 2;
/* On contruit la requête */
$select = "select nom, prenom FROM auteurs WHERE nom LIKE '".$lettre ."%' ORDER BY nom ASC LIMIT ".$limite.",".$nombre.";";

/* Pour vérification, on affiche la requête dans le navigateur : on doit obtenir :
select nom, prenom FROM auteurs WHERE nom LIKE 'a%' ORDER BY nom ASC LIMIT 3,2;
*/
echo("<p>". $select ."</p>\n");

/*
 On peut maintenant copier la requête affichée dans le navigateur et on 
 teste directement avec PhpMyAdmin, s'il y a une erreur, ce sera vite vu
 et on corrige facilement
 */
?>
Comme ça, ça va fonctionner tout aussi bien et on ne mélange pas les langages n'importe comment ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

niome
Invité n'ayant pas de compte PHPfrance

25 mars 2005, 15:26

merci Cyrano pour la mise au point. effectivement, ça fonctionne tout aussi bien :)