Est ce que quelqu'un peut m'expliquer une fonction

amir15
Invité n'ayant pas de compte PHPfrance

03 sept. 2010, 14:38

Je ne comprend pas à quoi sert cette fonction
 function getdetailssoustype2($id)
        {
        $db = & JFactory :: getDBO();
        $query = 'select * from #__f_soustype where id = '.$id.'' ;
        $db->setQuery($query);
        $result = $db->loadobject();
        $query = 'select nom , id_group from #__f_type where id = '.$result->id_type.'' ;
        $db->setQuery($query);
        $type = $db->loadobject();
        $query = 'select nom  from #__f_group where id = '.$type->id_group.'' ;
		$age_max = $db->loadobject();
        $query = 'select nom  from #__f_group where age_max <=15 AND !=99';
		$db->setQuery($query);
        $group = $db->loadresult();
        $array['soustype'] = $result;
        $array['type'] = $type->nom;
        $array['group'] = $group;
		$array['age_max'] = $age_max;
		

        return $array;

        }

amir15
Invité n'ayant pas de compte PHPfrance

03 sept. 2010, 15:35

Je souhaietrais faire la une fonctions qui n'affiche que les resultat ou l'age mex est inférieur à 15, mais sur la même base est ce possible ?

zaltec
Invité n'ayant pas de compte PHPfrance

03 sept. 2010, 16:12

BOn cette fonction est assez simple, la majeure partie n'est que du SQL

- apres avoir récupéré la ref de ma Db, la requête récupère tout les attributs de la table indiquée ds f-soustype pour un id.
- la requête est executée et récupère la premiere ligne correspondante de mon select
- nouvelle requête pour récupérer le nom et id du groupe de la table f_type a partir de l'id recupere de la requete precedente.
- nouvelle requête pour récupérer nom de la table ss_grpe a partir de l'id precedent
- variable age_max initialisée (utilité ensuite ?)
- nvelle requete pour nom de la table f_group avec un critere sur l'age
- Enfin mon tableau est complété avec les valeurs et retourné
Ouf.. (j'espère n'avoir pas été trop obscur ;-)

zaltec
Invité n'ayant pas de compte PHPfrance

03 sept. 2010, 16:14

oups la condition du where pour l'age me semble suspecte

amir15
Invité n'ayant pas de compte PHPfrance

03 sept. 2010, 16:29

oups la condition du where pour l'age me semble suspecte
Pourquoi

Pourrait tu m'expliquer ce qui est suspect ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 sept. 2010, 09:38

Tout d'abord il y a une erreur de syntaxe sql dans le critère suivant :
where age_max <=15 AND !=99
devrait être
where age_max <=15 AND age_max !=99
Et ce qui est bizarre, c'est que si l'age doit être inférieur ou égal à 15, il devrait aller de soit que celui-ci est différent de 99
where age_max <=15
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

zaltec
Invité n'ayant pas de compte PHPfrance

04 sept. 2010, 10:14

Je n'aurais pas pu mieux dire.
Un conseil : il faut essayer de séparer la logique du code .( typiquement la clause where incohérente)
et différencier les niveaux des langages : du code SQL que je teste dans mon SQLQuery préféré et l'appel via des fonctions php. :idea:
Mais comprendre une fonction c'est deja le premier pas (que bcp de codeur ne font pas svt)