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_
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)
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';
}
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...
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['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..?
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..
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...
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 ?