Concaténer le nom de deux variables

Invité
Invité n'ayant pas de compte PHPfrance

06 nov. 2005, 11:15

Le problème, c'est que je veux que un affrontement entre deux armées particulières puisse se refaire si besoin, s'il ne reste plus que $armee3 et $armee4_d, je veux qu'ils combattent jusqu'à qu'il n'en reste plus qu'un, c'est pour que ça que le $i++ ne me semble pas approprié. A moins qu'on me dise le contraire bien sur ^^

Donc je voudrais savoir si c'est quand même approprié, ou bien qu'il faut utiliser une autre méthode.

merci

Eléphant du PHP | 353 Messages

06 nov. 2005, 11:53

Finalement je crois qu'il faudrait que tu commences par apprendre les bases de php; ici par exemple:
tutoriels à droite

Modération (Cyrano) : On relaxe ses hormones et on agresse personne en l'envoyant paître !

Invité
Invité n'ayant pas de compte PHPfrance

06 nov. 2005, 11:57

Genre, hé bien merci.

Mais répond au moins à ma question

Et va donc faire un tour sur le site que je suis en train de fignoler, et dis-moi s'il faut que je rapprenne les bases (tu passeras outre le design qui va être refait). http://www.leslarmesduchaos.fr

@+ et merci de l'aide

Invité
Invité n'ayant pas de compte PHPfrance

06 nov. 2005, 12:00

J'espère que tu peux comprendre que ça fait super plaisir de se faire sortir ça après avoir bosser je ne sais combien de temps sur un site, parce qu'il me semble que c'est pas si affreux que certains points de php reste un peu sombre pour moi.

Mammouth du PHP | 19672 Messages

06 nov. 2005, 12:35

Bon, une petite mise au point faite, la création des tableau indexés n'est pas nécessairement très complexe. On commence par déclarer une variable comme tableau:
$armee1 = array();
Ensuite, on peut alimenter en valeurs, les index peuvent être automatiques:
$armee1[] = "valeur 1";
$armee1[] = "valeur 2";
$armee1[] = "valeur 3";
//... etc ...
Tu récupères ensuite les valeurs dans une boucle après avoir compte le nombre de valeurs enregistrées :
$nombre = count($armee1);
Ce nombre te sert de pointeur dans une boucle.

Tu peux aussi utiliser foreach() qui te dispense alors de faire un comptage préalable. Tu devrais explorer un peu la doc sur les tableaux, c'est très puissant et pratique.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 353 Messages

06 nov. 2005, 12:38

Quand je vois une question comme "mais la question est : comment faire des tableaux indexés ?" je me demande si tu maitrises vraiment les bases de php et je renvoie vers les excellents tutoriels de phpdebutant.

Le lien est celui-ci:
http://phpdebutant.org/article11.php

Cyrano il faudrait descendre de temps en temps de ta tour d'ivoire. Je ne vois pas en quoi renvoyer quelqu'un vers un tutoriel est comparable à l'envoyer paître.
Pour toi faire un tableau indéxé ne fait pas partie des bases de l'apprentissage de php ?

Invité
Invité n'ayant pas de compte PHPfrance

06 nov. 2005, 12:55

Je rappelle qu'il y avait une deuxième partie dans ma question :
Le problème, c'est que je veux que un affrontement entre deux armées particulières puisse se refaire si besoin, s'il ne reste plus que $armee3 et $armee4_d, je veux qu'ils combattent jusqu'à qu'il n'en reste plus qu'un, c'est pour que ça que le $i++ ne me semble pas approprié. A moins qu'on me dise le contraire bien sur ^^

Donc je voudrais savoir si c'est quand même approprié, ou bien qu'il faut utiliser une autre méthode.
est-ce que le combat entre deux armées peut se répéter, ou est-ce bien juste une fois ? Et encore, faut-il uploader les nouvelles valeurs correspondant au calcul fait (les nouvelles valeurs seraient donc ce qu'il reste) sur le tableau créé donc, avant la boucle (et on appelerait les valeurs de ce tableau au début de la boucle) ?

Mammouth du PHP | 19672 Messages

06 nov. 2005, 12:56

Modération : Nicolas, dernier avertissement. En deux réponses de ta part que je viens de voir, tu as un comportement détestable. Tu arrêtes ça immédiatement. Si tu n'es pas capable d'avoir un comportement civilisé, tu dégages, on a pas besoin de toi sur ce forum !
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

06 nov. 2005, 13:15

Euhhhh :oops: je voudrais juste savoir comment réatribuer une valeur à un endroit dans ce tableau...

Invité
Invité n'ayant pas de compte PHPfrance

06 nov. 2005, 13:28

C'est bon finalement, je devrais réussir à me débrouiller :

j'ai mis les données provenant du serveur (mysql_query("SELECT...")) dans la boucle, et ce tableau aussi et avant la fin de la boucle, je fais un upload de la nouvelle valeur que mon calcul a donné, et donc quand il down de nouveaux les valeurs provenant de la base de donnée, il prend les dernières valeurs, après que le calcul ai été fait.

Merci de l'aide ;)

Mammouth du PHP | 19672 Messages

06 nov. 2005, 13:32

Tu as résolu le problème finalement ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

06 nov. 2005, 15:52

Hé bien non, il y a un problème, je dois faire des calculs, et je reçois un message d'erreur : Fatal error: Unsupported operand types in /hsphere/local/home/xavierdm/leslarmesduchaos.fr/membres/resultatlong4.php on line 405
$nombreu1=rand(1,8);
if($nombreu1==1)
{
$nombreu1a=0;
$armee=array();
$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}']);
}
elseif($nombreu1>1)
{
$nombreu1=$nombreu1+1;
$nombreu1a=0;
$armee=array();
$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}']);
}

$nombreu2=rand(1,8);
if($nombreu2==1)
{
$nombreu2a=0;
$armee_d=array();
$armee_d['i']=array($i);
$armee_d['nb']=array($armee{$nombreu2}{dz});
$armee_d['vie']=array($var['unit{$nombreu2a}{$nombreu2}vie']);
$armee_d['def']=array($var['unit{$nombreu2a}{$nombreu2}def']);
$armee_d['deg']=array($var['unit{$nombreu2a}{$nombreu2}deg']);
$armee_d['att']=array($var['unit{$nombreu2a}{$nombreu2}att']);
$armee_d['aaa']=array($var['aaa1{$nombreu2a}{$nombreu2}']);
}
elseif($nombreu2>1)
{
$nombreu2=$nombreu2+1;
$nombreu2a=0;
$armeed=array();
$armeed['i']=array($i);
$armeed['nb']=array($armee{$nombreu2}{dz});
$armeed['vie']=array($var['unit{$nombreu2a}{$nombreu2}vie']);
$armeed['def']=array($var['unit{$nombreu2a}{$nombreu2}def']);
$armeed['deg']=array($var['unit{$nombreu2a}{$nombreu2}deg']);
$armeed['att']=array($var['unit{$nombreu2a}{$nombreu2}att']);
$armeed['aaa']=array($var['aaa1{$nombreu2a}{$nombreu2}']);
}

if($armee['nb']!=0 && $armeed['nb']!=0)
{
$baston = $armeed['nb']*$armeed['vie']-(($armeed['nb']*$armeed['vie'])-($armee['nb']*2*($armee['att']+$armee['deg'])));
$armeedn2 = $armeed['nb']-(floor($baston/$armeed['vie']));
$armeed[nb] = floor($baston/$armeed['vie']);
if($armeedn2<1)
{
$armeedn2 = 'tous les';
}
$texte2 .= '<br><strong>Les ' . $armee['aaa'] .' ont tué ' . $armeedn2 .' ' . $armeed['aaa'] . '.</strong>';
if($armee[nb] != 0)
{
$baston2 = $armee['nb']*$armee['vie']-(($armee['nb']*$armee['vie'])-($armeed['nb']*2*($armeed['att']+$armeed['deg'])));
$armeen2 = $armee['nb']-(floor($baston2/$armee['vie']));
$armee['nb'] = floor($baston/$armee['vie']);
if($armeen2<1)
{
$armeen2 = 'tous les';
}
$texte2 .= '<br>Les ' . $armeed['aaa'] .' ont massacré ' . $armeen2 .' ' . $armee['aaa'] . '.<br>';
}
$armee{$nombreu1}=$armee['nb'];
$armee{$nombreu2}{d}=$armeed['nb'];
}

La ligne 405 étant celle-ci :
$baston = $armeed['nb']*$armeed['vie']-(($armeed['nb']*$armeed['vie'])-($armee['nb']*2*($armee['att']+$armee['deg'])));
Je ne vois pas le problème... J'ai essayé avec les ' dans les crochets [''] et sans, mais ça ne change rien.

Où est donc le problème ?

Invité
Invité n'ayant pas de compte PHPfrance

06 nov. 2005, 17:01

J'ajoute que si vous ne comprenez pas tout, je peux rajouter la liste des importations, ou alors la boucle tout entière.

Eléphant du PHP | 353 Messages

06 nov. 2005, 17:22

Tu essaies d'ajouter ou multiplier deux tableaux ce qui n'est pas possible sans surcharger les opérateurs + et *.

Invité
Invité n'ayant pas de compte PHPfrance

06 nov. 2005, 17:31

Et donc, quels moyens existent-t-ils pour éviter ce surchargement ? Dois-je stocker toutes mes valeurs dans un seul tableau pour éviter que ça pose problème ?