PHP5

Fermé
ahm_had Messages postés 10 Date d'inscription mercredi 6 février 2013 Statut Membre Dernière intervention 2 mars 2013 - 6 févr. 2013 à 14:43
ahm_had Messages postés 10 Date d'inscription mercredi 6 février 2013 Statut Membre Dernière intervention 2 mars 2013 - 6 févr. 2013 à 16:53
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 mercredi 6 février 2013 Statut Membre Dernière intervention 6 février 2013
6 févr. 2013 à 14:44
salut
0
quentin100 Messages postés 2 Date d'inscription mercredi 6 février 2013 Statut Membre Dernière intervention 6 février 2013
6 févr. 2013 à 14:47
ok sa va
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
6 févr. 2013 à 15:12
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 mercredi 6 février 2013 Statut Membre Dernière intervention 2 mars 2013
6 févr. 2013 à 16:53
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