Forum de discussion et d'aide au php
Vous n'êtes pas identifié.
|
Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides. FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans. Proposez vos news : si vous avez un evenement à annoncer le chat : venez discuter de php. |
||
Bonjour !
Je ne sais pas vraiment comment expliquer mon problème, alors je décris :
Le code :
$id_base[$a] = $datac6['ID_base'];
echo "première id_base : ".$id_base[$a]."/".$datac6['ID_base']."<br>";Le résultat :
première id_base : 2/20
=> Le "20" est normal, mais le "2" sort vraiment de nul part.
Je ne comprend vraiment pas pourquoi l'affectation de la valeur $datac6['ID_base'] à $id_base[$a] ne fonctionne pas. ![]()
Merci de votre aide. ![]()
Hors ligne
En fait j'ai fini par trouver la solution moi même. Enfin, pour être plus précis, maintenant ça marche et j'ai peut-être compris le problème. ![]()
Au cas ou ça interesse quelqu'un je met explication ici :
Code qui pose problème :
$queryc6 = "SELECT T.ID_base, T.ID_Cible, V.ID, T.Type, V.ID_Proprio, V.Partie, T.Initiative, T.Quantite FROM troupes T, vaisseaux V WHERE T.ID_Cible > 0 AND T.ID_base = V.ID AND V.Partie = '".$data1['ID']."' ORDER BY Initiative, ID_base";
$SQLc6 = mysql_query($queryc6)or die(mysql_error());
$id_base=0;
$a = 0;
// On regroupe les armées
while($datac6 = mysql_fetch_assoc($SQLc6)){
// $a défini l'ID de l'armée, si on change de vaisseau, on commence une nouvelle armée
1 if($datac6['ID_base'] != $id_base){
2 $a++;
3 $id_base = $datac6['ID_base'];
4 $id_base[$a] = $datac6['ID_base']; <======== Pose problème !
5 $cible[$a] = $datac6['ID_Cible'];
6 $proprio[$a] = $datac6['ID_Proprio'];
7 $base[$a] = $datac6['ID_base'];
8 }
9 }Pourquoi est-ce qu'il y a un problème ? Parceque quand on affecte un résultat obtenu par la fonction mysql_fetch_assoc(), ça passe au résultat suivant. Or ici $datac6['ID_base'] à déjà été "vidé" deux fois déjà : lignes 1 et 3 sur mon dessin.
Solution :
$queryc6 = "SELECT T.ID_base, T.ID_Cible, V.ID, T.Type, V.ID_Proprio, V.Partie, T.Initiative, T.Quantite FROM troupes T, vaisseaux V WHERE T.ID_Cible > 0 AND T.ID_base = V.ID AND V.Partie = '".$data1['ID']."' ORDER BY Initiative, ID_base";
$SQLc6 = mysql_query($queryc6)or die(mysql_error());
$id_base=0;
$a = 0;
// On regroupe les armées
while($datac6 = mysql_fetch_assoc($SQLc6)){
// $a défini l'ID de l'armée, si on change de vaisseau, on commence une nouvelle armée
$test999 = $datac6['ID_base']; <=============== Une seul utilisation de $datac6['ID_base'];
if($test999 != $id_base){
$a++;
$id_base = $test999;
$test[$a] = $id_base;
$cible[$a] = $datac6['ID_Cible'];
$proprio[$a] = $datac6['ID_Proprio'];
$base[$a] = $datac6['ID_base'];
}
}Bon je sais pas si mon explication est vrai, ou si elle sera utile a quelqu'un un jour, mais en tout cas chez moi ça marche. J'éspère que mon après midi a me tirer les cheveux n'aura pas été complètement inutile. ^^
Hors ligne