par
Cyrano » 14 juil. 2005, 21:55
Non, tu peux simplifier en créant ta requête dynamiquement. Schéma sommaire:
<?php
$sql = "SELECT champ_1, champ_2, ... , champ_n".
"FROM table_x ";
/* En fonction des conditions (champs cochés ou non par exemple, on ajoute les clauses */
$clauses = array();
if(condition_1 == true)
{
array_push($clauses,"champ_x = valeur_x ");
}
if(condition_2 == true)
{
array_push($clauses,"champ_y = valeur_y ");
}
/* ... etc ... */
$nb_clauses = count($clauses);
if($nb_clauses > 0)
{
$sql .= "WHERE ";
for($i = 0; $i < $nb_clauses; $i++)
{
$sql .= ($i == ($nb_clauses - 1)) ? $clauses[$i]."AND " : $clauses[$i];
}
}
/* Ajout éventuel de clauses supplémentaires comme ORDER BY par exemple */
?>
Non, tu peux simplifier en créant ta requête dynamiquement. Schéma sommaire:
[php]<?php
$sql = "SELECT champ_1, champ_2, ... , champ_n".
"FROM table_x ";
/* En fonction des conditions (champs cochés ou non par exemple, on ajoute les clauses */
$clauses = array();
if(condition_1 == true)
{
array_push($clauses,"champ_x = valeur_x ");
}
if(condition_2 == true)
{
array_push($clauses,"champ_y = valeur_y ");
}
/* ... etc ... */
$nb_clauses = count($clauses);
if($nb_clauses > 0)
{
$sql .= "WHERE ";
for($i = 0; $i < $nb_clauses; $i++)
{
$sql .= ($i == ($nb_clauses - 1)) ? $clauses[$i]."AND " : $clauses[$i];
}
}
/* Ajout éventuel de clauses supplémentaires comme ORDER BY par exemple */
?>[/php]