Trie dans une recherche

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Trie dans une recherche

par dunbar » 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+

par Truc » 20 nov. 2006, 10:53

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

par Truc » 20 nov. 2006, 10:48

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

par Cyrano » 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.

Trie dans une recherche

par dunbar » 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