Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/06/2007, 14h09   #1
Nouveau Membre du Club
 
Étudiant
Inscription : juin 2006
Messages : 66
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2006
Messages : 66
Points : 37
Points : 37
Par défaut [SQL] Requete avec recherche partiel

Bonjour,

Je souhaite faire un recherche partiel, j'ai vu qu'il fallait utilisé LIKE et les %


Voici mon code :
Code :
1
2
3
4
5
6
7
8
9
 
 
$nom = $_POST['nom'];
 
$sql = sprintf("SELECT nom, prenom FROM utilisteur WHERE nom LIKE '%$nom%' ORDER BY nom");
 
$result = mysql_query($sql) OR DIE('erreur dans la requete : '.$slq.'<br> erreur : '.mysql_erreur());
 
$liste = mysql_fetch_array($result);
quand j'excute ce code j'ai une page blanche qui apparait avec juste le texte suivant qui s'affiche : Query was empty

Cependant je suis sur que le mot recherche existe prasque j'ai essayer en mettant directement du texte à la place de la variable.

Je pense que le probleme viens de ma requête mais ou?

merci pour votre aide.
benoît82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 14h21   #2
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 450
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 450
Points : 7 559
Points : 7 559
La requête ne semble pas en cause.
L'erreur serait peut-être dans le code qui l'entoure.
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 14h27   #3
Nouveau Membre du Club
 
Étudiant
Inscription : juin 2006
Messages : 66
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2006
Messages : 66
Points : 37
Points : 37
merci pour cette reponse rapide

donc pour voir si ca venait de code à coté j'ai écrite ce code dans une page vierge et j'ai la meme erreur qui s'affiche.
benoît82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 14h34   #4
Membre éclairé
 
Avatar de Asmodean
 
Inscription : février 2006
Messages : 311
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France

Informations forums :
Inscription : février 2006
Messages : 311
Points : 346
Points : 346
Envoyer un message via MSN à Asmodean
Si tu affiche ta requête sql avant de l'executer ca affiche quoi?
__________________
Such is the situation in our Fallen Galaxy
Asmodean est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 14h39   #5
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
pourquoi est ce que tu utilises sprintf() pour mettre ta requete dans la variable $sql??
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 14h49   #6
Nouveau Membre du Club
 
Étudiant
Inscription : juin 2006
Messages : 66
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2006
Messages : 66
Points : 37
Points : 37
Citation:
Envoyé par Asmodean
Si tu affiche ta requête sql avant de l'executer ca affiche quoi?
j'était justement entrain de vérifier son affichage et je me suis rendu compte que le premier pourcent n'était pas pris en compte pourquoi j'en sais rien

donc j'ai rajoute un pourcent en début et maintenant ca fonctionne

Citation:
Envoyé par koopajah
pourquoi est ce que tu utilises sprintf() pour mettre ta requete dans la variable $sql??
la je ne sais pas, j'ai vu plusieur code qui faisait comme ça donc j'ai essayer pour voir la diférence. Je n'en n'ai pas vu et je l'ai laisser.

merci pour votre aide

pour moi c'est résolu.
benoît82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 15h12   #7
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
sprintf est une fonction de formatage, ca permet de créer des chaines de caractères a partir de paramètre donnés, par exemple

Code :
1
2
$bonjourPattern = "Bonjour M. %s";
echo sprintf($bonjourPattern, "Koopajah");
ca va remplacer le %s par le premier deuxieme paramètre de sprintf, %s indique c'est une chaine de caractères
Code :
1
2
$bonjourPattern = "Bonjour M. %s il est %s";
echo sprintf($bonjourPattern, "Koopajah", date("y-m-d"));
ca va prendre Koopajah pour le premier %s et la date pour le second.

Documentation de sprintf()

il vaut mieux éviter de l'utiliser dans ton cas justement vu que tu as des % dans ta chaine de caractères ca va poser des problemes!
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 15h21   #8
Nouveau Membre du Club
 
Étudiant
Inscription : juin 2006
Messages : 66
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2006
Messages : 66
Points : 37
Points : 37
en effet j'ai rencontré d'autre probleme et j'allais justement poser la question quand j'ai vu ton message. j'ai donc enelever le sprintf et mon probleme est parti

donc merci koopajah pour ce rapelle du fonctionnement de sprintf.
benoît82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h38.


 
 
 
 
Partenaires

Hébergement Web