Modérateur PHPfrance |
2575 Messages
10 oct. 2008, 23:07
Bonjour,
Mon code:
while($row = mysql_fetch_assoc($result)){
$total = $row['total'];
$a = array($row['equa1']);
$b = array($row['equa2']);
$c = array($row['equa3']);
$e = array_merge($a, $b, $c);//fusionne les tableaux
$db = array_unique($e);
# on peut utiliser une requete SQL pour alimenter le tableau
$camembert->add_tab ($total, $db[0]." Db");
$camembert->add_tab ($total, $db[1]." Db");
$camembert->add_tab ($total, $db[2]." Db");
Selon ton code et les dumps que tu as posté, je constate que les variables $a, $b et $c ne sont pas des tableaux. La preuve est que leurs indexes sont tous à [0] dans le dump et que tu leurs affectent un champ à la fois dans la boucle While de la boucle.
En plus, il est logiquement faux que tu mettes les traitements array_merge() et array_unique() dans la boucle while.
Il fallait affecter les champs dans les tableaux $a, $b et $c dans le while et attendre la fin de la boucle pour traiter les tableaux correctement obtenus.
Proposition de correction:
// Initilisation des tableaux
$a = array(); $b = array(); $c = array();
// Remplissage des tableaux
while($row = mysql_fetch_assoc($result)){
$total = $row['total'];
// Ajout des valeurs des champs dans les tableaux
array_push($a, $row['equa1']);
array_push($b, $row['equa2']);
array_push($c, $row['equa3']);
}
// Traitement des tableaux remplis
$e = array_merge($a, $b, $c); // Fusion
$db = array_unique($e); // Épuration des doublons
// Affichage des résultats
echo "Contenu des tableaux : <ul><pre>";
print_r($a);
print_r($b);
print_r($c);
print_r($db);
echo "</pre></ul>";
--------
//////----
//---
//----
//////
-------
//---
//----
//---
//----
//---
//
------
//////----
//////-----
//////
-----
||--------
||--
||---
||
Prendre le recul n'est pas une perte de temps.
ps:
Affrontez moi dans l'arène