par
Jawad » 06 nov. 2005, 19:58
C'est effrayant en effet... puisque tu aurais pu le faire de manière beaucoup plus efficace!
Peut-être devrais-tu réexpliquer clairement ton problème, puisque dans le dernier listing que tu as posté, je n'ai pas retrouvé le calcul que tu faisais (tu as simplifié $baston).
Quand on te parlait d'utiliser des tableaux indexés pour optimiser ton code, voilà un exemple de ce que l'on te conseillait.
Tu as:
$ressource1 = $sql['ressource1'];
$ressource2 = $sql['ressource2'];
$ressource3 = $sql['ressource3'];
$ressource4 = $sql['ressource4'];
Au lieu d'en créer 4, un seul tableau aurait suffit:
$ressource["1"] = $sql['ressource1'];
$ressource["2"] = $sql['ressource2'];
$ressource["3"] = $sql['ressource3'];
$ressource["4"] = $sql['ressource4'];
D'une part ce sera un peu moins lourd, et d'autre part tu pourras boucler sur tes index si tu as envie de lister les ressources dispo.
Visiblement il y'a un problème dans une partie de ton code.
Tu écris:
$armee["i"]=array($i);
$armee["nb"]=array($dem['armee{$nombreu1}']);
$armee["vie"]=array($sql['unit{$nombreu1a}{$nombreu1}vie']);
$armee["def"]=array($sql['unit{$nombreu1a}{$nombreu1}def']);
$armee["deg"]=array($sql['unit{$nombreu1a}{$nombreu1}deg']);
$armee["att"]=array($sql['unit{$nombreu1a}{$nombreu1}att']);
$armee["aaa"]=array($sql['aaa1{$nombreu1a}{$nombreu1}']);
Ce qui ne correspond pas à grand chose...
array() sert à
créer un nouveau tableau!
Autrement dit lorsque tu écris $armee
= array($i);
Tu mets dans $armee un tableau dont la valeur de l'index 0 est $i.
Il en est de même pour les autres index de ton tableau armee (nb, vie...)
En gros, pour accéder à la valeur de $armee[vie] comme tu penses que tu devrais le faire (soit avec $armee[vie] directement), tu devrais en réalité écrire $armee[vie][0]. $armee[vie] étant un tableau dans ton code (et non la valeur de l'index 'vie' du tableau $armee).
D'où le problème dans tes calculs, puisque tu tentes de calculer avec des tableaux. Ce qui est impossible! (et logique).
Reprends donc une partie de ton code pour avoir quelque chose comme ça:
$armee["i"]=$i);
$armee["nb"]=$dem['armee{$nombreu1}'];
$armee["vie"]=$sql['unit{$nombreu1a}{$nombreu1}vie'];
$armee["def"]=$sql['unit{$nombreu1a}{$nombreu1}def'];
$armee["deg"]=$sql['unit{$nombreu1a}{$nombreu1}deg'];
$armee["att"]=$sql['unit{$nombreu1a}{$nombreu1}att'];
$armee["aaa"]=$sql['aaa1{$nombreu1a}{$nombreu1}'];
Je rejoins malheuresement l'avis de Nicolas. Les bases sont à reprendre! (mais ça ne nous empêchera pas de t'aider si tu évitais les bourdes comme celles-ci)
C'est effrayant en effet... puisque tu aurais pu le faire de manière beaucoup plus efficace!
Peut-être devrais-tu réexpliquer clairement ton problème, puisque dans le dernier listing que tu as posté, je n'ai pas retrouvé le calcul que tu faisais (tu as simplifié $baston).
Quand on te parlait d'utiliser des tableaux indexés pour optimiser ton code, voilà un exemple de ce que l'on te conseillait.
Tu as:
[php]
$ressource1 = $sql['ressource1'];
$ressource2 = $sql['ressource2'];
$ressource3 = $sql['ressource3'];
$ressource4 = $sql['ressource4'];
[/php]
Au lieu d'en créer 4, un seul tableau aurait suffit:
[php]
$ressource["1"] = $sql['ressource1'];
$ressource["2"] = $sql['ressource2'];
$ressource["3"] = $sql['ressource3'];
$ressource["4"] = $sql['ressource4'];
[/php]
D'une part ce sera un peu moins lourd, et d'autre part tu pourras boucler sur tes index si tu as envie de lister les ressources dispo.
Visiblement il y'a un problème dans une partie de ton code.
Tu écris:
[php]
$armee["i"]=array($i);
$armee["nb"]=array($dem['armee{$nombreu1}']);
$armee["vie"]=array($sql['unit{$nombreu1a}{$nombreu1}vie']);
$armee["def"]=array($sql['unit{$nombreu1a}{$nombreu1}def']);
$armee["deg"]=array($sql['unit{$nombreu1a}{$nombreu1}deg']);
$armee["att"]=array($sql['unit{$nombreu1a}{$nombreu1}att']);
$armee["aaa"]=array($sql['aaa1{$nombreu1a}{$nombreu1}']);
[/php]
Ce qui ne correspond pas à grand chose...
array() sert à [b]créer un nouveau tableau[/b]!
Autrement dit lorsque tu écris $armee[i] = array($i);
Tu mets dans $armee[i] un tableau dont la valeur de l'index 0 est $i.
Il en est de même pour les autres index de ton tableau armee (nb, vie...)
En gros, pour accéder à la valeur de $armee[vie] comme tu penses que tu devrais le faire (soit avec $armee[vie] directement), tu devrais en réalité écrire $armee[vie][0]. $armee[vie] étant un tableau dans ton code (et non la valeur de l'index 'vie' du tableau $armee).
D'où le problème dans tes calculs, puisque tu tentes de [b]calculer avec des tableaux[/b]. Ce qui est impossible! (et logique).
Reprends donc une partie de ton code pour avoir quelque chose comme ça:
[php]
$armee["i"]=$i);
$armee["nb"]=$dem['armee{$nombreu1}'];
$armee["vie"]=$sql['unit{$nombreu1a}{$nombreu1}vie'];
$armee["def"]=$sql['unit{$nombreu1a}{$nombreu1}def'];
$armee["deg"]=$sql['unit{$nombreu1a}{$nombreu1}deg'];
$armee["att"]=$sql['unit{$nombreu1a}{$nombreu1}att'];
$armee["aaa"]=$sql['aaa1{$nombreu1a}{$nombreu1}'];
[/php]
Je rejoins malheuresement l'avis de Nicolas. Les bases sont à reprendre! (mais ça ne nous empêchera pas de t'aider si tu évitais les bourdes comme celles-ci)