Pb avec programme de recherche

Résolu/Fermé
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 - 2 oct. 2008 à 19:56
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 - 2 oct. 2008 à 22:35
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

djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 94
2 oct. 2008 à 20:08
Et ton formulaire c'est quoi au juste ?

Ca serait pas plutot $_POST['nom'] au lieu de $_SESSION ?
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
2 oct. 2008 à 20:46
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.
0
djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 94
2 oct. 2008 à 20:53
Si tu fais un echo $_SESSION['nom'] , ca donnes quoi ?

Et ensuite, quel est ton message d'erreur ?
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
2 oct. 2008 à 21:36
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
0

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

Posez votre question
djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 94
2 oct. 2008 à 21:54
Essayes :

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


ou

$sql = " SELECT * FROM dk_travaux WHERE nom LIKE '%$_SESSION[nom]%' ";
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
2 oct. 2008 à 22:02
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.
0
djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 94
2 oct. 2008 à 22:30
$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 !
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
2 oct. 2008 à 22:35
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.
0