Probleme de syntaxee

Résolu
ladj59 Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   -  
ladj59 Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Contributeur Dernière intervention   922
 
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   Statut Membre Dernière intervention   114
 
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   Statut Membre Dernière intervention   3
 
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   Statut Contributeur Dernière intervention   922
 
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   Statut Membre Dernière intervention   114
 
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   Statut Membre Dernière intervention   3
 
c'est bon j'ai trouvé
merci
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
bah tu pourrais nous dire !
-;o)
0
ladj59 Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   3
 
ben c'était juste ca j'avais oublié d'enlevé un = dans mon code
0