Erreur PHP/SQL

Résolu
flopad
Messages postés
528
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009
- 27 avril 2006 à 17:04
flopad
Messages postés
528
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009
- 9 mai 2006 à 10:38
Salut,

J'ai l'erreur suivante dans mon code, est ce que qq'un a une idée d'ou ca peut bien venir..???

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

Ca donne l'erreur sur cette ligne :

$where=" WHERE description, cause_probable, proposition_amelioration LIKE '%$_POST['mot_cle'] %' ";

Merci!!

30 réponses

coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
5 mai 2006 à 14:39
Salut,
alors ou est le problème ???

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
3
cs_Anthomicro
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
27 avril 2006 à 17:15
Salut,

$where=' WHERE description, cause_probable, proposition_amelioration LIKE \'%'.$_POST['mot_cle'].'%\' ';

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
flopad
Messages postés
528
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009

27 avril 2006 à 17:46
D'accord!! Merci!

Par contre, j'ai maintenant l'erreur suivante, on dirait que ca ne tient pas compte des conditions :

Erreur SQL !
SELECT description, cause_probable, proposition_amelioration, agence_concernee, processus_concerne, resp, etat_action, numero FROM recap_observations WHERE description, cause_probable, proposition_amelioration LIKE '%%' AND agence_concernee LIKE '% %' AND processus_concerne LIKE '% %' AND resp LIKE '% %' AND etat_action LIKE '% %' AND numero LIKE '% %' ORDER BY numero
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' cause_probable, proposition_amelioration LIKE '%%' AND agence_
0
cs_Anthomicro
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
27 avril 2006 à 17:49
ça vient de ta requête MySQL qui est fausse c'est quoi tous ces doubles % partout ?

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0

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

Posez votre question
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
27 avril 2006 à 17:59
Salut,

SELECT description, cause_probable, proposition_amelioration,
agence_concernee, processus_concerne, resp, etat_action, numero FROM
recap_observations WHERE description, cause_probable,
proposition_amelioration
LIKE '%%' AND agence_concernee LIKE '% %' AND
processus_concerne LIKE '% %' AND resp LIKE '% %' AND etat_action LIKE
'% %' AND numero LIKE '% %' ORDER BY numero

il faut des AND pour séparer les conditions...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
flopad
Messages postés
528
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009

27 avril 2006 à 20:00
En fait, ma requete SQL est alimentée par les données suivantes :

//Tables
$flag='';
$from='';
if(isset($_POST['recap_ameliorations']))
{
$from=" FROM recap_ameliorations ";
$flag='1';
}

if(isset($_POST['recap_observations']))
{
if($flag=='1') $from.=" ,  recap_observations  ";
else
$from.="  FROM recap_observations  ";
}

//Mot clé
$flag='';
$where='';

if(isset($_POST['mot_cle']))
{
$where=" WHERE description, cause_probable, proposition_amelioration LIKE '%
$_POST['mot_cle']
%' ";
$flag='1';
}

//Agence concernée
if(isset($_POST['agence_concernee']))
{
if($flag=='1') $where.=" AND agence_concernee LIKE
'%$_POST['agence_concernee']
%' ";
else
$where.=" WHERE agence_concernee LIKE
'%$_POST['agence_concernee']
%'
";
$flag='1';
}

//Processus concerné
if(isset($_POST['processus_concerne']))
{
if($flag=='1') $where.=" AND processus_concerne LIKE
'%$_POST['processus_concernee']
%'
";
else
$where.=" WHERE processus_concerne LIKE
'%$_POST['processus_concernee']
%'
";
$flag='1';
}

//Responsable
if(isset($_POST['resp']))
{
if($flag=='1') $where.=" AND resp LIKE
'%$_POST['resp']
%'
";
else
$where.=" WHERE resp LIKE
'%$_POST['resp']
%'
";
$flag='1';
}

//Etat des actions
if(isset($_POST['etat_action']))
{
if($flag=='1') $where.=" AND etat_action LIKE '%
$_POST['etat_action']
%' ";
else
$where.=" WHERE etat_action LIKE
'%
$_POST['etat_action']
%'
";
$flag='1';
}

//Numéro
if(isset($_POST['numero']))
{
if($flag=='1') $where.=" AND numero LIKE '%
$_POST['numero']
%' ";
else
$where.=" WHERE numero LIKE
'%
$_POST['numero']
%'
";
$flag='1';
}
0
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
27 avril 2006 à 22:14
Salut,

$where=" WHERE description, cause_probable, proposition_amelioration LIKE '%
$_POST['mot_cle']
%' ";

tu veux faire quoi ici ???

t'écoutes ce qu'on postes ?

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
cs_Anthomicro
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
27 avril 2006 à 22:16
Je pense qu'il attend un code tout fait...

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
27 avril 2006 à 22:17
Salut,

si on ne sait pas ce qu'il veut faire ça va être dur....

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
cs_Anthomicro
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
27 avril 2006 à 22:19
Bah même si je le savais perso, je ferais pas un script tout fait... un peu de recherche ne fait pas de mal, surtout quand on voit comment il se tamponne de ce qu'on lui dit...

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
flopad
Messages postés
528
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009

28 avril 2006 à 08:03
Salut!

Désolé, j'avais bien fait les modifs que vous m'avez indiqué, mais je me suis planté dans le bout de code que j'ai cpoié hier soir...
Je ne recherche pas du tout à ce qu'on me ponde un code tout fait, mais là, je bloque complet...je ne comprends pas pourquoi j'ai cette erreur...

Mon code c'est ça :

//Récupération des valeurs des champs:


//Tables
$flag='';
$from='';


if(isset($_POST['recap_ameliorations']))
{
$from=" FROM recap_ameliorations ";
$flag='1';
}


if(isset($_POST['recap_observations']))
{
if($flag=='1') $from.=" ,  recap_observations  ";
else
$from.="  FROM recap_observations  ";
}


//Mot clé
$flag='';
$where='';


if(isset($_POST['mot_cle']))
{
$where=' WHERE description, cause_probable, proposition_amelioration LIKE \'%'.$_POST['mot_cle'].'%\' ';
$flag='1';
}


//Agence concernée
if(isset($_POST['agence_concernee']))
{
if($flag=='1') $where.=' AND agence_concernee LIKE \'%'.$_POST['agence_concernee'].' %\' ';
else
$where.=' WHERE agence_concernee LIKE \'%'.$_POST['agence_concernee'].' %\' ';
$flag='1';
}


//Processus concerné
if(isset($_POST['processus_concerne']))
{
if($flag=='1') $where.=' AND processus_concerne LIKE \'%'.$_POST['processus_concerne'].' %\' ';
else
$where.=' WHERE processus_concerne LIKE \'%'.$_POST['processus_concerne'].' %\' ';
$flag='1';
}


//Responsable
if(isset($_POST['resp']))
{
if($flag=='1') $where.=' AND resp LIKE \'%'.$_POST['resp'].' %\' ';
else
$where.=' WHERE resp LIKE \'%'.$_POST['resp'].' %\' ';
$flag='1';
}


//Etat des actions
if(isset($_POST['etat_action']))
{
if($flag=='1') $where.=' AND etat_action LIKE \'%'.$_POST['etat_action'].' %\' ';
else
$where.=' WHERE etat_action LIKE \'%'.$_POST['etat_action'].' %\' ';
$flag='1';
}


//Numéro
if(isset($_POST['numero']))
{
if($flag=='1') $where.=' AND numero LIKE \'%'.$_POST['numero'].' %\' ';
else
$where.=' WHERE numero LIKE \'%'.$_POST['numero'].' %\' ';
$flag='1';
}


Ensuite, ma requete donne ça :

$sql="SELECT description, cause_probable, proposition_amelioration, agence_concernee, processus_concerne, resp, etat_action, numero ".$from.$where."  ORDER BY numero";

En fait, ce qui est en rouge, ce sont les champs de ma ou mes tables sur lesquels il faut que je recherche, est ce que le problème viendrait de la syntaxe de cette requete..?
0
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
28 avril 2006 à 09:20
Salut,

ce que tu as en rouge, si c'est les champs que tu veux récupérer alors pourquoi c'est dèrière un where ? on ne met que les conditions derière un where

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
flopad
Messages postés
528
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009

28 avril 2006 à 10:10
Je suis pas là...?

Ce qui est en rouge, ce sont les champs ou je recherche mes variables récupérées du formulaire.
Et après le where, j'ai bien des conditions puisque ce sont mes variables si elles sont remplies..
0
flopad
Messages postés
528
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009

28 avril 2006 à 10:59
Bon, j'ai fait qques modifs, ca a l'air un peu mieux mais c'est pas encore ça...

Si je fais un echo de ma requete j'ai :

SELECT * FROM recap_observations WHERE description OR cause_probable OR proposition_amelioration LIKE '' AND agence_concernee LIKE ' ' AND processus_concerne LIKE ' ' AND resp LIKE ' ' AND etat_action LIKE ' ' AND numero LIKE ' ' ORDER BY numero

Je ne comprends pas ou est le soucis, mes conditions ne fonctionnent pas car dans mon formulaire, je ne sélectionne que la base et sa m'affiche quand meme tous les AND....
Je devrais avoir une requete du style   SELECT * FROM recap_observations ORDER BY numero

La ca a l'air de ne pas tenir compte des mes if(isset... et des flags...
0
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
2 mai 2006 à 13:11
Salut,

le type bool n'existe pas en sql !!

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
flopad
Messages postés
528
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009

2 mai 2006 à 13:31
Houla ca va se compliquer, est ce que tu pourrais m'orienter vers une solution qu'il faudrait que j'utilise stp..?
0
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
2 mai 2006 à 14:24
Salut,

IS_NULL(machin)=0

un truc du genre

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
cs_Anthomicro
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
2 mai 2006 à 19:22
C'est WHERE tonchamp IS NULL
<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
2 mai 2006 à 19:40
Salut,

alors avec :

WHERE ( tonchamp IS NULL ) = 0

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
flopad
Messages postés
528
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009

4 mai 2006 à 08:25
Bonjour, désolé de ne pas avoir répondu plus tôt, mais je n'étais pas là....
Excusez moi mais je ne vois pas trop ou le mettre ça..? Et ça fait quoi exactement WHERE ( monchamp IS NULL ) = 0 ?

Merci beaucoup
0