Est ce que je peux réduire ce code ?

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par sff, 4 Avril 2017.

  1. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    526
    J'aime reçus:
    0
    Bonjour,

    je souhaite savoir si je peux réduire ce code et plus précisement la boucle, car elle comporte plusieurs éléments similaires. J'ai essayé diverses techniques mais sans succès. Merci d'avance
    Code:
    try {
    	$test = $pdo->prepare("SELECT id, link_text, link_url, link_tooltip FROM categories");
    	$test->execute();
     
    	$rowAll = $test->fetchAll(PDO::FETCH_ASSOC); 
    } catch (PDOException $e){ echo 'Erreur SQL : '. $e->getMessage().'<br/>'; die(); }
     
    
    	foreach ($rowAll as $key => $row)
    	{
    		$link_text = 'link_text_'.$row['id'];
    		$view-> $link_text = $row['link_text'];
    		
    		$link_url = 'link_url_'.$row['id'];
    		$view-> $link_url = $row['link_url'];
    		
    		$link_tooltip = 'link_tooltip_'.$row['id'];
    		$view-> $link_tooltip = $row['link_tooltip'];		
    	}
     
  2. Louis63
    Louis63 WRInaute discret
    Inscrit:
    22 Février 2016
    Messages:
    102
    J'aime reçus:
    0
    réduire le contenu du while, pas vraiment.
    après, il ne sert à rien de faire une boucle car la valeur des variables affectées sera, après la boucle, celle du dernier enregistrement de la table.
     
  3. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    526
    J'aime reçus:
    0
    Justement je veux récupérer l'intégralité des enregistrements de la table (4 enregistrements) donc une boucle est forcement nécessaire pour tous les récupérer. Non ?
     
  4. niap
    niap WRInaute discret
    Inscrit:
    17 Octobre 2009
    Messages:
    138
    J'aime reçus:
    0
    Pourquoi tu n'ajoute pas une fonction à l'objet view dans laquelle tu passe l'id et les paramètres ?
    Code:
    foreach($rowAll as $key => $row) {
          $view->Ajoute($row['id'], $row['link_text'], $row['link_url'], $row['link_tooltip']); 
    }
    
    Et plutôt que d'utiliser des variables en vrac, utilise un tableau c'est plus propre.
    Code:
    public function Ajoute($id, $text, $url, $tooltip){
            $v = [];
            $v['text'] = $text;
            $v['url'] = $url;
            $v['tooltip'] = $tooltip;
            $this->MesDonnesBienRangees[$id] = $v;
    }
    
     
  5. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    526
    J'aime reçus:
    0
    Merci pour ta réponse, mais j'ai malheuresement une erreur :

    Uncaught Error: Call to undefined method Template::Ajoute() in ...
     
  6. niap
    niap WRInaute discret
    Inscrit:
    17 Octobre 2009
    Messages:
    138
    J'aime reçus:
    0
    Tu as bien modifié la classe de l'objet view ?
    Il faut aussi créer la variable $MesDonnesBienRangees dans la class.
     
Chargement...
Similar Threads - réduire code Forum Date
Réduire un bout de code Développement d'un site Web ou d'une appli mobile 5 Février 2017
Reduire des lignes de code php Développement d'un site Web ou d'une appli mobile 5 Novembre 2016
Réduire sa dépendance à Google Le café de WebRankInfo 22 Mai 2019
WORDPRESS Woocommerce, vos astuces pour réduire CPU usage et serveur stress ? e-commerce 22 Juin 2018
Reduire et optimiser une requete sql Développement d'un site Web ou d'une appli mobile 8 Décembre 2016
Réduire le taux de rebond d'un site d'une école Débuter en référencement 29 Mai 2015
Réduire le temps de chargement d'une page Développement d'un site Web ou d'une appli mobile 20 Mars 2015
réduire le poid d'une photo ( logiciel gratuit ) Développement d'un site Web ou d'une appli mobile 30 Janvier 2015
Réduire le temps de chargement - Besoin d'aide Développement d'un site Web ou d'une appli mobile 11 Août 2014
Réduire le temps de chargement d'un site. Développement d'un site Web ou d'une appli mobile 4 Septembre 2011
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice