Pb avec programme de recherche

[Résolu/Fermé]
Signaler
Messages postés
3538
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
-
Messages postés
3538
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
-
Bonjour,
J'ai un nouveau problème de programme PHP.
Partant de ce code trouvé sur PHP Debutant, je voudrai le modifier en plaçant une variable.
$sql = "SELECT * FROM famille_tbl WHERE prenom LIKE '%MA%'";

en remplaçant %MA% par une variable.
Ainsi, ma recherche se ferai à partir d'un élément du contenu d'une colonne de ma base.
Exemple pour recherche "salut ma poule" qui est dans ma base, je tape "ma" et il me trouve tout ce qui contient "ma".
"ma" serai tapé dans un formulaire qui lancerai la recherche. De cette manière, "ma" serai le contenu d'une variable.
J'ai essayé différents essai mais j'y arrive pas.
Voici mes essais:
$sql = 'SELECT * FROM dk_travaux WHERE nom LIKE '%$_SESSION["nom"]%'';
$sql = 'SELECT * FROM dk_travaux WHERE nom LIKE '%'.$_SESSION["nom"].'%'';
$sql = "SELECT * FROM dk_travaux WHERE nom LIKE '%'.$_SESSION["nom"].'%'";


A chaque fois j'ai un message d'erreur...

Pourriez-vous m'aider?

8 réponses

Messages postés
557
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
23 avril 2015
89
Et ton formulaire c'est quoi au juste ?

Ca serait pas plutot $_POST['nom'] au lieu de $_SESSION ?
Messages postés
3538
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
464
A vrai dire j'ai ça en debut de code:
$_SESSION["nom"] = $_POST["nom"];

Je l'ai mis dans l'éventualité où j'aurai besoin de faire suivre ces infos par la suite.
Messages postés
557
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
23 avril 2015
89
Si tu fais un echo $_SESSION['nom'] , ca donnes quoi ?

Et ensuite, quel est ton message d'erreur ?
Messages postés
3538
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
464
Le echo $_SESSION['nom'] m'affiche correctement mon texte. Je pense que mon problème c'est que j'arrive pas à l'intégré correctement à ma fonction de recherche.

En mettant:
$sql = "SELECT * FROM dk_travaux WHERE nom LIKE '%'.$_SESSION["nom"].'%'"

J'ai:
Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /mnt/140/sdc/c/2/darkentworld/travaux/traitement_nom.php on line 10
Messages postés
557
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
23 avril 2015
89
Essayes :

$sql = " SELECT * FROM dk_travaux WHERE nom LIKE '%$_SESSION[\'nom\']%' ";


ou

$sql = " SELECT * FROM dk_travaux WHERE nom LIKE '%$_SESSION[nom]%' ";
Messages postés
3538
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
464
La première solution me réponds:
Parse error: syntax error, unexpected T_BAD_CHARACTER, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /mnt/140/sdc/c/2/darkentworld/travaux/traitement_nom.php on line 10


Toutefois la deuxième solution semble marché. En tout cas elle m'affiche un résultat qui semble correspondre à ce que je voulais.
Merci beaucoup pour ton aide.
Messages postés
557
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
23 avril 2015
89
$sql = " SELECT * FROM dk_travaux WHERE nom LIKE '%$_SESSION[\"nom\"]%' ";

Peut etre que ca marcherait ?

Sinon ravis de t'avoir aidé, c'est vrai que c'est un gros casse tete ces simple et double quotes parfois !
Messages postés
3538
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
464
Non mais en fait
$sql = " SELECT * FROM dk_travaux WHERE nom LIKE '%$_SESSION[nom]%' ";
avait focntionné correctement.
Maintenant pour finaliser mon programme j'ai un problème de date mais j'ai fait un autre topic pour ça.
Merci encore.