Simplifier un code php


sff
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 336
Inscription: 2 Fév 2005

Simplifier un code php

Message le Dim Oct 26, 2008 20:56

Bonjour, je me demande bien comment je pourrais simplifier ce bout de code php. Je pensais utiliser une boucle for(), mais j'arrive pas la mettre en oeuvre.

Quelqu'un aurait t'il une idée de simplification?

Code: Tout sélectionner
if($userrow['equip1id'] == $itemsrow['id'] OR $userrow['equip2id'] == $itemsrow['id'] OR $userrow['equip3id'] == $itemsrow['id']){
               
               $buy = 'texte 1';              
               
            }elseif($userrow['bag1id'] == $itemsrow['id'] OR $userrow['bag2id'] == $itemsrow['id'] OR $userrow['bag3id'] == $itemsrow['id'] OR $userrow['bag4id'] == $itemsrow['id'] OR $userrow['bag5id'] == $itemsrow['id'] OR $userrow['bag6id'] == $itemsrow['id'] OR $userrow['bag7id'] == $itemsrow['id'] OR $userrow['bag8id'] == $itemsrow['id'] OR $userrow['bag9id'] == $itemsrow['id'] OR $userrow['bag10id'] == $itemsrow['id']){
               
               $buy = 'texte2';   
               
            }else{
               
               $buy = 'texte 3';   
               
            }

justemoi
WRInaute discret
WRInaute discret
 
Messages: 81
Inscription: 24 Oct 2008

Message le Dim Oct 26, 2008 21:16

Peut etre en utilisant un switch en php sur la valeur de $itemsrow['id'] ?
Code: Tout sélectionner
switch ($itemsrow['id'] ) {
case "$userrow['equip1id']",
case $userrow['equip2id'],
etc :
$buy = 'texte 1';
break;
$userrow['bag1id'],
$userrow['bag2id'],
etc :
$buy = 'texte2';
break;
default:
$buy = 'texte 3';
break;
}


sff
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 336
Inscription: 2 Fév 2005

suite

Message le Dim Oct 26, 2008 21:44

Comme ca tu veux dire :

Code: Tout sélectionner
switch ($itemsrow['id']) {
            case $userrow['equip1id']:
            case $userrow['equip2id']:
            case $userrow['equip3id']:
               
               $buy = 'texte ici';
               break;
               
            case $userrow['bag1id']:
            case $userrow['bag2id']:
            case $userrow['bag3id']:
            case $userrow['bag4id']:
            case $userrow['bag5id']:
            case $userrow['bag6id']:
            case $userrow['bag7id']:
            case $userrow['bag8id']:
            case $userrow['bag9id']:
            case $userrow['bag10id']:
               
               $buy = 'texte ici';   
               break;
               
            default:
               $buy = 'texte ici';
               break;
            }


Il y a pas possibilité de faire encore plus simple?

justemoi
WRInaute discret
WRInaute discret
 
Messages: 81
Inscription: 24 Oct 2008

Message le Dim Oct 26, 2008 21:58

oui sans les virgules effectivement.
faire plus simple peut etre mais je vois pas.


Bacteries
WRInaute passionné
WRInaute passionné
 
Messages: 1369
Inscription: 27 Mai 2004

Message le Dim Oct 26, 2008 23:03

Peut être plus avant (la construction de ton tableau, ou la requête derrière) qu'il faudrait jouer?


seebz
WRInaute impliqué
WRInaute impliqué
 
Messages: 808
Inscription: 15 Avr 2007

Message le Lun Oct 27, 2008 7:54

en regroupant les 'equip' et les 'bar' dans des tableaux respectif, in_array() serait une solution


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3884
Inscription: 16 Nov 2004

Message le Lun Oct 27, 2008 8:03

essaye avec le in_array suggerer par seebz : (jamais testé)

Code: Tout sélectionner
  for ($i=1;$i<=3;$i++)  { $tab_1[] = $userrow['equip'.$i.''.'id']; }
  $trans_id = $itemsrow['id'];
  if (in_array($trans_id,$tab_1) $buy = 'texte 1';

  for ($i=2;$i<=10;$i++)  { $tab_2[] = $userrow['bag'.$i.''.'id']; }
  $trans_id = $itemsrow['id'];
  if (in_array($trans_id,$tab_2) $buy = 'texte 2';


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

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