PHP5

[Fermé]
Signaler
Messages postés
10
Date d'inscription
mercredi 6 février 2013
Statut
Membre
Dernière intervention
2 mars 2013
-
Messages postés
10
Date d'inscription
mercredi 6 février 2013
Statut
Membre
Dernière intervention
2 mars 2013
-
Bonjour,


je développe un module de gestion de caisse avec php5 et mysql, donc j'ai un problème au niveau de la fonction recherche, la recherche se fait en fonctionde 5 parametres soit on peut les avoir tous sopit qlque 1 soit aucun mias en tt cas la recherche doit nous donner un resultat alors est-ce-qu'il y a qeulqu'1 qui peut me donner la requette mysql qui permet de verefier si les champs sont rempli donc on affiche tt les info sinn on test et la rechechre se fait en fonction les champs remplis
MERCI

4 réponses

Messages postés
2
Date d'inscription
mercredi 6 février 2013
Statut
Membre
Dernière intervention
6 février 2013

salut
Messages postés
2
Date d'inscription
mercredi 6 février 2013
Statut
Membre
Dernière intervention
6 février 2013

ok sa va
Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 000
Bonjour,

Il suffit de construire ta requête SQL pour n'inclure dans la clause WHERE que les paramètres définis.

Par exemple :
$sql = 'SELECT * FROM table ';
$premierChamp = true;

if (isset($param1) && $param1 != '')
{
    $debut = ($premierChamp) ? 'WHERE ' : 'AND ';
    $premierChamp = false;
    $sql .= $debut . "champ1 = '$param1' ";
}

if (isset($param2) && $param2 != '')
{
    $debut = ($premierChamp) ? 'WHERE ' : 'AND ';
    $premierChamp = false;
    $sql .= $debut . "champ2 = '$param2' ";
}

if (isset($param3) && $param3 != '')
{
    $debut = ($premierChamp) ? 'WHERE ' : 'AND ';
    $premierChamp = false;
    $sql .= $debut . "champ3 = '$param3' ";
}

...

mysql_query($sql);


Xavier
Messages postés
10
Date d'inscription
mercredi 6 février 2013
Statut
Membre
Dernière intervention
2 mars 2013

Reivax962
Merci pour votre reponse mais voila la solution que j'ai pu faire et ca a marché

function ListeMouvement ( $nature_id, $executeur_id, $responsable_id, $date_debut, $date_fin){

$data = $this->connexion->DB;

try{

$query = " SELECT c.*,n.nature_intitule FROM nature n JOIN caisse c " ;

$WHERE = "1";
if(!is_numeric($nature_id)) $WHERE .= " AND nature_id =".$nature_id;
if(!is_numeric($executeur_id)) $WHERE .= " AND executeur_id=".$executeur_id;
if(!is_numeric($responsable_id)) $WHERE .= " AND responsable_id=".$responsable_id;
if(!empty($date_debut)) $WHERE .= " AND date_debut=".$date_debut;
if(!empty($date_fin)) $WHERE .= " AND date_fin=".$date_fin;

$query .= $WHERE;

$result = $data->Execute( $query );
return ( $result );

}
catch( Exception $e ){
return $e;
}
}