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 -
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
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
salut,
en fait tu as deux guillemets en trop.
et un p'tit tuto pour les apostrophes/guillemets
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
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.
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.
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
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
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);
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
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.