Trie dans une recherche

ViPHP
ViPHP | 2291 Messages

20 nov. 2006, 10:31

Bonjour,

J'ai j'ai un tableau dans lequel j'effectue une recherche suivant un critére ici ref
$sql_recherche = (isset($_POST['recherche'])) ? " WHERE ref = '".$_POST['recherche']."'" : "";
Et ma question est comment rajouter un ou des critéres supplémentaires
?
Exemple 1 la reférence et puis le nom par exemple ?

D'avance merci
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Mammouth du PHP | 19672 Messages

20 nov. 2006, 10:47

En créant une clause après l'autre et en stockant chacune dans un tableau pour ensuite construire la clause WHERE dynamiquement. Illustration :
<?php
/* On crée un tableau pour stoquer les clauses possibles */
$clauseWhere = array();
/* On définit un opérateur : "AND" si on veut TOUTES les conditions, "OR" si on en veut au moins une */
$operateur = " AND "; /* ATTENTION, on oublie pas de laisser un espace de chaque coté de l'opérateur */
/* Création de chaque clause */
if(isset($_POST['recherche']))
{
    $clauseWhere[] = "ref = '".$_POST['recherche']."'";
}
if(isset($_POST['nom']))
{
    $clauseWhere[] = "nom = '".$_POST['nom']."'";
}
/* Si on a au mois une clause, on l'ajoute à la requête */
if(count($clauseWhere) > 0)
{
    $sql_recherche = "WHERE ". implode($operateur, $clauseWhere);
}
?>
Tu peux de cette manière le faire sur autant de clauses que tu veux.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

20 nov. 2006, 10:48

Salut,
On trouve de tout sur ce forum... Voir ce topic :)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

20 nov. 2006, 10:53

Réutilisabilité Cyrano réutilisabilité :lol:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

ViPHP
ViPHP | 2291 Messages

20 nov. 2006, 11:52

En créant une clause après l'autre et en stockant chacune dans un tableau pour ensuite construire la clause WHERE dynamiquement. Illustration :
<?php
/* On crée un tableau pour stoquer les clauses possibles */
$clauseWhere = array();
/* On définit un opérateur : "AND" si on veut TOUTES les conditions, "OR" si on en veut au moins une */
$operateur = " AND "; /* ATTENTION, on oublie pas de laisser un espace de chaque coté de l'opérateur */
/* Création de chaque clause */
if(isset($_POST['recherche']))
{
    $clauseWhere[] = "ref = '".$_POST['recherche']."'";
}
if(isset($_POST['nom']))
{
    $clauseWhere[] = "nom = '".$_POST['nom']."'";
}
/* Si on a au mois une clause, on l'ajoute à la requête */
if(count($clauseWhere) > 0)
{
    $sql_recherche = "WHERE ". implode($operateur, $clauseWhere);
}
?>
Tu peux de cette manière le faire sur autant de clauses que tu veux.
:wink: Merci beaucoup a+
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.