vendredi 22 juillet 2005

getElement($type_, $elem_, $traitement_in_="", $traitement_out_="")

/**
* getElement()
* pour retrouver une élément dans la bdd
*
* @param $type_ champs1.valeur1:champs2.valeur2 etc...
* @param $elem_ champs dont on veut trouver l'info
* @return string
**/
function getElement($type_, $elem_, $traitement_in_="", $traitement_out_="") {
global $cache_elements;

$defaut_field='nom';

//on explore en premier l'element type_
$type_tmp=explode(":",$type_);
for($i=0;$i < count($type_tmp);$i++) {
$type_tab=explode(".",$type_tmp[$i]);
if(count($type_tab)==1) {
//on a pas de champs spécifié
$field=$defaut_field;
$seek=$type_tmp[$i];
} else {
//on prend en compte le champs spécifié
$field=$type_tab[0];
$seek=$type_tab[1];
}
$where_clause.=" AND $field='$seek'";
}


#on gere une sorte de cache, pour afficher plusieurs éléments différents sans BDD
if($cache_elements[$type_][$elem_]=='') {
//sinon, on va chercher dans la BDD
$query_look="SELECT $elem_ FROM produits WHERE 1 $where_clause limit 1";
$liste_look=mysql_query($query_look) or print "erreur:$query_look";
$result_look=mysql_fetch_array($liste_look);
//on met en cache
$cache_elements[$type_][$elem_]=$result_look[0];
}

//et on sort
if($traitement_in_) return ereg_replace($traitement_in_, $traitement_out_, $cache_elements[$type_][$elem_]);
else return $cache_elements[$type_][$elem_];
}

Aucun commentaire:

Enregistrer un commentaire