Simplifier ce code

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


sff
WRInaute impliqué
WRInaute impliqué
 
Messages: 293
Inscription: Mer Fév 02, 2005 23:04

Simplifier ce code

Message le Dim Nov 23, 2008 19:15

Bonjour, je me demande comment je pourrais simplifier le code suivant. Il est utiliser pour afficher un menu déroulant, séparé en 3 parties.

Dans le code, il y a 3 parties identiques, chargeant tous les 3 des requêtes identiques.

Quelqu'un pourrait-il m'aider? Merci

Code: Tout sélectionner
function bag() {// Affichage du sac.

   global $userrow;

   $page = '<select name="slot"><option value="0">Vos poches</option>
   <option value="0">Vos poches à équipements :</option>';

   for ($i=1; $i<=3; $i++)
   {
      
      $item = doquery("SELECT name FROM {{table}} WHERE id='".$userrow['bag'.$i.'id']."' LIMIT 1", "items");
      $item = mysql_fetch_assoc($item);   
      
      if (($item) != null AND is_numeric($userrow['bag'.$i.'id'])) {
         
         $page .='<option value="'.$i.'">Poche '.$i.' du sac à dos : '.$item['name'].'</option>';

      }elseif(!is_numeric($userrow['bag'.$i.'id'])) {
         
         $id_equip = explode(',',$userrow['bag'.$i.'id']);   
         
         $equip = doquery("SELECT name FROM {{table}} WHERE id='".$id_equip[0]."' LIMIT 1", "equips");
         $equip = mysql_fetch_assoc($equip);
         
         $page .='<option value="'.$i.'">Poche '.$i.' du sac à dos : '.$equip['name'].'</option>';
         
      }else{ $page .='<option value="'.$i.'">Poche '.$i.' du sac à dos : Vide</option>'; }   
      
   }
   
   $page .= '<option value="0">Vos poches à objets :</option>';
   
   for ($i=4; $i<=6; $i++)
   {
      
      $item = doquery("SELECT name FROM {{table}} WHERE id='".$userrow['bag'.$i.'id']."' LIMIT 1", "items");
      $item = mysql_fetch_assoc($item);   
      
      if (($item) != null AND is_numeric($userrow['bag'.$i.'id'])) {
         
         $page .='<option value="'.$i.'">Poche '.$i.' du sac à dos : '.$item['name'].'</option>';

      }elseif(!is_numeric($userrow['bag'.$i.'id'])) {
         
         $id_equip = explode(',',$userrow['bag'.$i.'id']);   
         
         $equip = doquery("SELECT name FROM {{table}} WHERE id='".$id_equip[0]."' LIMIT 1", "equips");
         $equip = mysql_fetch_assoc($equip);
         
         $page .='<option value="'.$i.'">Poche '.$i.' du sac à dos : '.$equip['name'].'</option>';
         
      }else{ $page .='<option value="'.$i.'">Poche '.$i.' du sac à dos : Vide</option>'; }   
      
   }
   
   $page .= '<option value="0">Vos poches à matériaux :</option>';
   
   for ($i=7; $i<=9; $i++)
   {
      
      $item = doquery("SELECT name FROM {{table}} WHERE id='".$userrow['bag'.$i.'id']."' LIMIT 1", "items");
      $item = mysql_fetch_assoc($item);   
      
      if (($item) != null AND is_numeric($userrow['bag'.$i.'id'])) {
         
         $page .='<option value="'.$i.'">Poche '.$i.' du sac à dos : '.$item['name'].'</option>';

      }elseif(!is_numeric($userrow['bag'.$i.'id'])) {
         
         $id_equip = explode(',',$userrow['bag'.$i.'id']);   
         
         $equip = doquery("SELECT name FROM {{table}} WHERE id='".$id_equip[0]."' LIMIT 1", "equips");
         $equip = mysql_fetch_assoc($equip);
         
         $page .='<option value="'.$i.'">Poche '.$i.' du sac à dos : '.$equip['name'].'</option>';
         
      }else{ $page .='<option value="'.$i.'">Poche '.$i.' du sac à dos : Vide</option>'; }   
      
   }

   $page .='</select>';
   
   return $page;
}


k2pi
WRInaute impliqué
WRInaute impliqué
 
Messages: 308
Inscription: Dim Fév 04, 2007 22:17

Message le Dim Nov 23, 2008 22:55

Sans regarder le code avec ce que tu dis fait une fonction et appel la 3 fois avec les bons paramettres...


La Chaise sauvage
WRInaute passionné
WRInaute passionné
 
Messages: 693
Inscription: Lun Avr 11, 2005 10:37

Message le Lun Nov 24, 2008 10:18

non testé :

Code: Tout sélectionner
function bag() {// Affichage du sac.

   global $userrow;

   $page = '<select name="slot"><option value="0">Vos poches</option>
   <option value="0">Vos poches à équipements :</option>';
   
   for ($i=1; $i<=3; $i++) {
      $page .= contenu_poche($userrow, $i);
   }     
   $page .= '<option value="0">Vos poches à objets :</option>';   
   for ($i=4; $i<=6; $i++) {
      $page .= contenu_poche($userrow, $i);     
   }     
   $page .= '<option value="0">Vos poches à matériaux :</option>';   
   for ($i=7; $i<=9; $i++) {     
      $page .= contenu_poche($userrow, $i);
   }   
   $page .='</select>';
   
   return $page;
}

function contenu_poche($userrow, $i){
    $item = doquery("SELECT name FROM {{table}} WHERE id='".$userrow['bag'.$i.'id']."' LIMIT 1", "items");
    $item = mysql_fetch_assoc($item);         
    if (($item) != NULL and is_numeric($userrow['bag'.$i.'id'])) {         
        $ret = option_sac($i, $item['name']);
    } elseif(!is_numeric($userrow['bag'.$i.'id'])) {
        $id_equip = explode(',',$userrow['bag'.$i.'id']);           
        $equip = doquery("SELECT name FROM {{table}} WHERE id='".$id_equip[0]."' LIMIT 1", "equips");
        $equip = mysql_fetch_assoc($equip);             
        $ret = option_sac($i, $equip['name']);
    } else {          
        $ret = option_sac($i, 'Vide');
    }   
    return $ret;
}

function option_sac($contenu, $i){
   return '<option value="'.$i.'">Poche '.$i.' du sac à dos : '.$contenu.'</option>';
}


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités