OVH Cloud OVH Cloud

Probleme avec ma requet SQL

1 réponse
Avatar
mounir81
Bonjour

j'aimerai bien que vous m'aidiez sur mon probleme,
je viens de construire une requet simple :
$query=sprintf("SELECT * FROM produit WHERE nom_prod LIKE 'c%'");

mon probleme c que je recois toujours le message
Warning: sprintf(): Too few arguments in c:\program
files\easyphp1-8\www\produit.php on line 231
Query est vide

j'ai essayé d'une autre maniere
$car="c";
$query=sprintf("SELECT * FROM produit WHERE nom_prod LIKE
'".$car."%'");

et toujours le même probleme, je lance la même requet sur l'espace
phpMyAdmin, est ca fonctionne
en plus quand j'enleve la condition were nom_prod LIKE ''c%' elle
fonctionne aussi.

merci de votre aide

1 réponse

Avatar
Olivier Miakinen

j'aimerai bien que vous m'aidiez sur mon probleme,


Il faut croire que ton problème ne vient pas de SQL sinon tu aurais été
redirigé vers le groupe consacré aux SGBD. ;-)

je viens de construire une requet simple :
$query=sprintf("SELECT * FROM produit WHERE nom_prod LIKE 'c%'");

mon probleme c que je recois toujours le message
Warning: sprintf(): Too few arguments in c:program
fileseasyphp1-8wwwproduit.php on line 231


Je serais presque tenté de répondre RTFM :
http://fr3.php.net/manual/fr/function.sprintf.php

Malgré tout, j'ai trouvé bizarre qu'il considère %' comme un paramètre
de sprintf, eh bien en lisant la doc j'ai trouvé ceci :

<cit.>
1. Un spécificateur d'espacement optionnel [...] Un caractère
d'espacement alternatif peut être spécifié en le préfixant avec un
guillemet simple ('). Voir les exemples ci-dessous.
[...]
printf("[%'#10s]n", $s); // utilisation du caractère personnalisé de
séparation '#'
</>


En conclusion : si tu avais vraiment besoin de sprintf, tu devrais
remplacer % par %% ; mais ici tu peux écrire plus simplement :
$query = "SELECT * FROM produit WHERE nom_prod LIKE 'c%'";