PHP5

ahm_had Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
ahm_had Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -
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

quentin100 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
salut
0
quentin100 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
ok sa va
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
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
0
ahm_had Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
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;
}
}
0