Probleme de syntaxee

Résolu/Fermé
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 - 18 févr. 2008 à 16:32
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 - 19 févr. 2008 à 08:49
Bonjour,
j'ai un problme j'ai du mal à comrpendre comment on mets les % ' " ... a l'interieur des requete
dans mon code j'ai :
sql .="auteur LIKE '%".$_POST['auteur']."%'" AND "titre LIKE '%".$_POST['titre']."%'";


il manque des signes notramment autrour du and je crois mais je ne vois pa trop...
Si quelqu'un peut me corriger et m'expliquer ou me filer un lien explicite ce serait super!!
merci

7 réponses

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921
18 févr. 2008 à 17:09
salut,
sql .="auteur LIKE '%".$_POST['auteur']."%'" AND "titre LIKE '%".$_POST['titre']."%'"; 

en fait tu as deux guillemets en trop.
sql .="auteur LIKE '%".$_POST['auteur']."%' AND titre LIKE '%".$_POST['titre']."%'"; 

et un p'tit tuto pour les apostrophes/guillemets
0
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
18 févr. 2008 à 17:21
Quelques suggestions de méthode :

1. analyser ce que tu veux faire : générer une partie de requête sql qui correspond à :

auteur LIKE '%xxxxx%' AND titre LIKE '%yyyy%'

(xxxx et yyyy étant le contenu de $_POST[ 'auteur' ] et $_POST['titre']

2. lire et comprendre le "p'tit tuto" suggéré par Dalida (à noter que dans "p'tit tuto" il y a p'tit tuto encadré par deux ")

3. écrire le code PHP correspondant.

Lorsque tu auras appliqué cette méthode deux ou trois fois tu sera devenu un expert.

Bon courage.
0
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
18 févr. 2008 à 18:09
je ne comprends pas car dans le code suivant:

if (($donnees['auteur']==$_POST['auteur']) && ($donnees['titre']==$_POST['titre']) && ($donnees['année']==$_POST['année']) && ($_POST['journal']=='') && ($_POST['motsclé']==''))
{
$sql .="auteur LIKE '%".$_POST['auteur']."%' AND ";
$sql .="titre LIKE '%".$_POST['titre']."%' AND ";
$sql .="année LIKE '%".$_POST['année']."%'";

$reponse2 = mysql_query($sql);
}

if (($donnees['auteur']==$_POST['auteur']) && ($donnees['titre']==$_POST['titre']) && ($_POST['année']) && ($donnees['journal']==$_POST['journal']) && ($_POST['motsclé']==''))
{
$sql .="auteur LIKE '%".$_POST['auteur']."%' AND ";
$sql .="titre LIKE '%".$_POST['titre']."%' AND ";
$sql .="journal LIKE '%".$_POST['journal']."%'";

$reponse2 = mysql_query($sql);
}


pour le 1er if ca marche nikel mais pour le 2éme ca ne marche pas et ca me mets Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\tests\cc.php on line 135(qui est la suivanter while ($donnees = mysql_fetch_array($reponse2))=


si quelqu'un a une explication...
merci
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921
18 févr. 2008 à 18:12
sans doute parce que tu concatènes sur ta première variable.
if (($donnees['auteur']==$_POST['auteur']) && ($donnees['titre']==$_POST['titre']) && ($_POST['année']) && ($donnees['journal']==$_POST['journal']) && ($_POST['motsclé']==''))
{
$sql ="auteur LIKE '%".$_POST['auteur']."%' AND ";
$sql .="titre LIKE '%".$_POST['titre']."%' AND ";
$sql .="journal LIKE '%".$_POST['journal']."%'";

$reponse2 = mysql_query($sql);
} 
0

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

Posez votre question
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
18 févr. 2008 à 18:18
Ta requête sql a manifestement un pb, pour analyser la raison, ajoute après to second $reponse2 = mysql_query($sql); (celui qui ne marche pas) :

if( !$reponse2 )
{
$message = 'Requête invalide : ' . mysql_error() . "\n";
$message .= 'Requête complète : ' . $query;
die($message);
}
puis exécute ton script, note ce qui est affiché et réflechit.
0
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
18 févr. 2008 à 18:20
c'est bon j'ai trouvé
merci
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921
18 févr. 2008 à 23:42
bah tu pourrais nous dire !
-;o)
0
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
19 févr. 2008 à 08:49
ben c'était juste ca j'avais oublié d'enlevé un = dans mon code
0