[RESOLU] explicatin d'une class

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 : [RESOLU] explicatin d'une class

Re: explicatin d'une class

par Nadege21 » 15 juin 2013, 10:18

Merci pour l'aide précieuse, tout fonctionne et en plus j'ai compris le mécanisme
Bon week end
Nadege

Re: explicatin d'une class

par Spols » 14 juin 2013, 16:44

fait de même dans la méthode getlistsouscategorie_et_article

Re: explicatin d'une class

par Nadege21 » 14 juin 2013, 16:41

Je crois avoir trovué un début de solution mais ce n'est pas le résultat escompté
j'ai mis
$re = mysql::select(self::$base, "*", null, "id desc");
ca marche mais pas pour les sous catégorie ca marche pour les catégories

Re: explicatin d'une class

par jojolapine » 14 juin 2013, 16:08

Et donc ?

Qu'est-ce qu'elle nous apprend ? est-que le dernier paramètre $by pourrait être utile pour faire changer l'ordre à votre avis ?
à quoi correspond « self::PutByToSelect » ?
que donne la requête SQL si on passe un paramètre $by ?

il faut aussi chercher un petit peu par soi même ;)

Cordialement,

Re: explicatin d'une class

par Nadege21 » 14 juin 2013, 16:03

ok
voilà donc la fonction secelct que j'ai trouvé
public static function select($from,$what,$where,$by) {
		
		$sql = "SELECT ".$what." FROM ".$from."".self::PutWhereToSelect($where)."".self::PutByToSelect($by);
		//echo $sql;
		$result = mysql_query($sql);
		$re = array();
		while($ok = mysql_fetch_assoc($result)) {
			$re[] = self::arraytoutf8($ok);
		}
		//echo $sql;

Re: explicatin d'une class

par jojolapine » 14 juin 2013, 15:35

A priori le premier mysql::select(...) va chercher toutes les entrées françaises (que l'on demande de l'anglais ou du français).
Et si jamais on demande de l'anglais, alors on parcours les résultats français pour récupérer l'équivalent anglais...

Mais pour savoir si l'appel à mysql::select permet où non de passer un « ordre » il est impératif de trouver la méthode d'origine :)

Une recherche dans les fichiers sur «class mysql» devrait pouvoir faire l'affaire ?

Re: explicatin d'une class

par Nadege21 » 14 juin 2013, 15:20

oui mais des select il y en a une flopée sur le site donc je ne sais pas trop comment trouver celui là.

parce que $a = mysql::select(self::$base_anglais, "*", "id_categorie=".$value['id'], null);
ça veut pas dire qu'on chercher dans base_anglais l'id_catefgorie=$id ?? ? c'est pas un select ca?

Re: explicatin d'une class

par jojolapine » 14 juin 2013, 15:12

La sélection semble à priori se trouver « derrière » cette ligne :
        $re = mysql::select(self::$base, "*", null, NULL);
Il te faut donc maintenant poursuivre en cherchant à quoi ressemble la méthode select de la classe mysql :)
Tu pourras ainsi voir si un paramètre « d'ordonnancement » est possible et si oui via quelle syntaxe.

Re: explicatin d'une class

par Nadege21 » 14 juin 2013, 15:07

Merci de ta réponse ca m'a permis de trouver le code je crois
mais là encore je ne vois pas ou est l'affichage
    
public static function getlistcategorie($lang = "fr") {      
        $re = mysql::select(self::$base, "*", null, NULL);
          if($lang == "en") {
            $reanglais=array();
            foreach($re as $k => $value) {
            $a = mysql::select(self::$base_anglais, "*", "id_categorie=".$value['id'], null);
            $a[0]['id'] = $value['id'];
            $reanglais[] = $a[0];
            
            }
            $buff;
//            foreach ($reanglais as $k => $v) {
//                $buff[$k]['id'] = $v['id_categorie'];
//                $buff[$k] = $v;
//           }
           
//           return $buff;
            return $reanglais;
        } else {
            return $re;
        }
        
    }
je suppose que c'est dans la ligne
$a = mysql::select(self::$base_anglais, "*", "id_categorie=".$value['id'], null);
mais je ne sais pas comment ecrire order by id asc

Encore merci
Nadège

Re: explicatin d'une class

par jojolapine » 14 juin 2013, 14:32

Bonjour,

Les catégories sont à priori récupérée dans la classe categorie_front via la méthode getlistcategorie()
L'appel à la base de donnée devrait donc se trouver dans cette méthode.

Pour les sous-catégories ça devrait être la méthode getlistsouscategorie_et_article dans la même classe.

Cordialement,

explicatin d'une class

par Nadege21 » 14 juin 2013, 12:56

Bonjour
j'ai hérité d'un développement dont je ne comprend pas grand chose, et sur lequel je dois faire une petite modification.
je dois remettre l'affichage des sous catégories d'un menu par ordre d'id.
le hic c'est que je ne vois pas où il y a un appel à la base pour chercher les sous catégories.
est ce que quelqu'un peut m'expliquer le code suivant?
surtout les functions return menu francais
merci beaucoup
Nadege
class menu_front {
    
    public static function return_menu($lang = "fr") {
        if($lang == "en") {
            return self::return_menu_anglais();
        } else {
            return self::return_menu_francais();
        }
        
    }
    
    private static function return_menu_anglais() {
        $categorie = categorie_front::getlistcategorie("en");
        $out = array();
        
        foreach ($categorie as $v) {
            
            $v['child'] = categorie_front::getlistsouscategorie_et_article($v['id'],"en");
            $out[] = $v;
        }
        
        
        return $out;
    }
    
    private static function return_menu_francais() {
        
        $categorie = categorie_front::getlistcategorie();
        
        $out = array();
        
        foreach ($categorie as $v) {
            
            $v['child'] = categorie_front::getlistsouscategorie_et_article($v['id']);
            $out[] = $v;
            
        }
        
        
        return $out;
    }