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 44
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 8
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 8
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 44
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 44
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 8
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 44
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 8
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 44
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 44
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 44
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 8
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 44
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
Rejoignez-nous