Extraction des donnees: fonction dans 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 : Extraction des donnees: fonction dans une class

Re: Extraction des donnees: fonction dans une class

par rimie » 08 juil. 2013, 03:42

merci moogli je vais la tester

Re: Extraction des donnees: fonction dans une class

par moogli » 04 juil. 2013, 10:56

hum a tu compris ce que tu as fait ?

non ?

tu a fait un boucle infinie simplement parce que ça méthode s'appelle récursivement sans jamais offrir un sortie.

ce type d'utilisation d'une classe est a proscire car tu devrais fait appel a la méthode pour chaque donnée que tu souhaite autant simple récupére le tabelau et ensuite utiliser les données.

c'est quand même pas complexe de faire un echo $data['truc']; et 100 lignes plus lins de faire un echo $data['machin'].

Ensuite si j'ai bien compris ton premier code, les clefs à garder de sRes sont les valeur sde sVal ?
si oui
<?php
function extractRows($sRows = array()){
    $finalTab = [];
    foreach($sRows as $v) {
        if(isset($this->sRes[$v])){
            $finalTab[] = $this->sRes[$v];
        }
    }
    return $finalTab;
}
?>
est suffisant ensuite tu utilise les valeurs du tableau résultat
<?php
$tab = $objet->extractRows([1,2,12,58]);

echo $tab[1];

echo $tab [2];
// etc 

ce qui revient a demander le tableau sRes et d'utiliser les index directement
echo $objet->sRes[1];
ou 
$tab = $objet->getSres(); // plus dans la philosophie objet où les propriétés d'une classe sont toujours privée. 
echo $tab[1];
echo $tab [2];
faut quand même vérifier que les index existe avant de tenter de  utiliser :) 


@+

Re: Extraction des donnees: fonction dans une class

par rimie » 04 juil. 2013, 04:10

oups ca boufe la memeoire et ca affiche rien:

Code : Tout sélectionner

PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 130968 bytes) in /var/www/Tests/PHP/Classes/MySQL.php on line 94
// Extract rows
        public final function extractRows($sRows = array()) {
            echo '<pre>';
            var_dump($this->sRes);
            echo '</pre>';
                     echo self::extractRows($sRows)['0'];
                     echo self::extractRows($sRows)['1'];
                     echo self::extractRows($sRows)['2'];
        } // end extractRows()

Re: Extraction des donnees: fonction dans une class

par yann18 » 03 juil. 2013, 13:29

si je fais un return $sVal, comment afficher les valeurs dans les places que je souhaitais

en faisant return $sVal ,le type de retour de ta méthode extractRows() devient un tableau. Donc tu peux appeller ta méthode comme un tableau:
<?php
$tab=array("Apple","Juice","Orange", "Cherry");
//on passe à extractRows un tableau en paramètre  
echo self::extractRows($tab )['0']; //affichera Apple
echo self::extractRows($tab )['3']; //affichera Cherry
?>

Re: Extraction des donnees: fonction dans une class

par rimie » 03 juil. 2013, 05:09

si je fais un return $sVal, comment afficher les valeurs dans les places que je souhaitais

Re: Extraction des donnees: fonction dans une class

par moogli » 02 juil. 2013, 17:40

salut,

retourne un tableau avec les infos => mot clef return


@+

Extraction des donnees: fonction dans une class

par rimie » 02 juil. 2013, 01:42

Bonjour,

Lors de l'extraction des donnees, on peut les utiliser ou on veut, par exemple, 3 champs dans une table, on utilise 1 champs ici, un autre dans un <td> et l'autre en bas:
echo '<td>'.$champs1.'</td>';
// codes 

echo '<li>'.$champs2.'</li>';

// codes

echo $champs3;


J'ai mis une class que je recupere 3 champs, et j'aimerais les recuperer et les afficher ou je veux dans ma page, je veux pas faire un echo dans ma fonction:
// Extract rows
        public final function extractRows($sRows = array()) {
            
            foreach($this->sRes as $sK=>$sV)
		{
                    foreach($sRows as $sKey=>$sVal){
                        
                        $sVal = $sV[$sVal];
                        echo $sVal.'<br />';
                
                 } // end foreach $sRows
                } // end foreach $sRes
                
        } // end extractRows()

merci a vous