Class recherche php5 poo

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 186 fois - Téléchargée 17 fois

Contenu du snippet

Cette class est simple d'utilisation et modulable, elle vous permet de creer un system de recherche avancé sans avoir refaire des manipulations systématiques.

Source / Exemple :


<?php
//*** CREE PAR MOUNIR R'QUIBA (MOON AIR) (cosmoswarez@msn.com) ********
//          30/09/2009 !! COPYRIGHT !!
//--------A utiliser sans moderation :D -------------------------------
// Class de recherche 

 
/*

  • Fichier "Search.php"
  • /
class Search{ public $table; public function find($data=array()){ $conditions = (isset($data["conditions"])) ? " ".$data["conditions"]." " : " 1=1 " ; $fields = (isset($data["fields"])) ? $data["fields"] : "*" ; $order = (isset($data["order"])) ? " ORDER BY ".$data["order"] : "" ; $limit = (isset($data["limit"])) ? " LIMIT ".$data["limit"] : "" ; $sql = "SELECT $fields FROM ".$this->table." WHERE $conditions $order $limit"; $req = mysql_query($sql) or die(mysql_error()."<br />".mysql_query()); $d = array(); while($data = mysql_fetch_assoc($req)){ $d[] = $data; } return $d; } public function conditions($words,$strict=true,$arg=null,$nb=3,$or_and ="OR"){ $st = ($strict==true)? "" : "%" ; $mu = ($strict==true)? "=" : "LIKE" ; if(isset($words) and !empty($words)){ $q = trim($words); if(strlen($q) > $nb){ $r = explode(" ",$q); $sql = " ".$this->fields." $mu '$st".$q."$st' "; if($arg==true){ foreach($r as $k=>$v){ if(strlen($v) > $nb){ $sql .= " $or_and ".$this->fields." $mu '$st".$v."$st' "; } } } return $sql; } } } public function limit($pos=1,$nbCount=10){ $cPos = $pos-1; $limit = $cPos.",".$nbCount; return $limit; } } ?> <?php /*
  • Fichier "index.php"
  • /
require("./Search.php"); mysql_connect('localhost','root',''); mysql_select_db('cat'); mysql_query("SET NAMES 'utf8'"); $words="Mots a rechercher"; $search = new Search(); $search->table="Table"; // a modifier $fields = "champs"; // a modifier $search->fields=$fields; $condition = $search->conditions($words,false,true); $limit = $search->limit(1,10); $req = array("conditions"=>"$condition","fields"=>"$fields","limit"=>"$limit"); print_r($req); $resultat = $search->find($req); print_r($resultat); ?>

Conclusion :


C'est une petite class simple, alors j'éspépre qu'elle va vous êtres utiles.

A voir également

Ajouter un commentaire

Commentaires

Messages postés
70
Date d'inscription
samedi 15 février 2003
Statut
Membre
Dernière intervention
30 décembre 2015

bonjour,
j'ai créer les pages index et search.php
je les ai rattacher a une bases de donnée avec la sélection de la table, et du champ dans lequel chercher mais j'ai une erreur :

Array ( [conditions] => mots LIKE '%Mots a rechercher%' OR mots LIKE '%Mots%' OR mots LIKE '%rechercher%' [fields] => mots [limit] => 0,10 ) Array ( )

peu tu me mettre sur la voie pour resoudre le probleme
merci d'avance
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
16
bonsoir
sympa cette petite class
a++
Messages postés
2
Date d'inscription
vendredi 18 septembre 2009
Statut
Membre
Dernière intervention
27 janvier 2010

Bonjour mtrix000,

je suis novice en php et surtout poo.
c'est sensé marcher qu'avec ces deux fichiers (et la bdd...)?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.