Problème Array , Checkbox et JPGraph

okhlaoma Messages postés 2 Date d'inscription dimanche 21 juin 2009 Statut Membre Dernière intervention 23 juin 2009 - 21 juin 2009 à 14:07
nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 - 23 juin 2009 à 23:39
Bonjour,

voilà mon problème :

A partir d'une requete sur une base de donnée, j'ai un tableau html avec à chaque ligne une case à cocher . Cette case a pour but de récuperer les valeurs des lignes selectionnées pour les comparer sur un histogramme

Case à cocher
echo ' array('.$biere.', '.$vodka.')"></td>';

Je récupère un array comme ceci
Array
(   
[0] => Albert Bebert => array(167, 200)
               [1] => Roger Vadim=> array(150, 175)
               [2] => Léon Tromblon => array(204, 189)
)

Les valeurs étant la consommation de bière (167 litres pour Albert) et celle de vodka (200 litres pour Albert, quelle poivreau celui là )

Pour créer un histogramme groupé sur jpgraph, je souhaiterai extraire mes données sous la formes :

$data_x=array(Albert, Roger, Léon);
$data_y1=array(167, 150, 204);
$data_y2=array(200, 175, 189);

Mais impossible d'y arriver !!! Je précise que je ne suis pas developpeur professionel, je me suis donc balladé sur les fofos, j'ai lu des tonnes de tuto sur les arrays, mais je ne trouve aucune solution à mon problème ! Il existe probablement une fonction mais je ne la connais pas.
Un ptit coup de main serait le bienvenue, Merci !!!

OKHLAOMA

3 réponses

nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 1
23 juin 2009 à 12:24
Bonjour, ton tableau $_POST en entrée est très simple à convertir via une transformée simple:

Avec par exemple:$entree Array (    [0]> Albert Bebert => array(167, 200)
               [1] => Roger Vadim=> array(150, 175)
               [2] => Léon Tromblon => array(204, 189) ) ;
$data_x=array();
$data_y1=array();
$data_y2=array();
foreach ( $entree as $name => $val ) {
  $data_x[] = $name ;
  $data_y1[] = $val[0] ;
  $data_y2[] = $val[1] ;
}

la conversion de structure est complète.
0
okhlaoma Messages postés 2 Date d'inscription dimanche 21 juin 2009 Statut Membre Dernière intervention 23 juin 2009
23 juin 2009 à 21:04
Merci pour ta réponse !

j'ai trouvé une solution entre temps, j'ai changé ma checkbox pour envoyer les données séparées par une virgule

Case à cocher
echo '</td>';

je récupère mes données :
 if(empty($_POST['idExp']))
  {  echo "aucun résultat selectionné";  }
  else
  {
  $envoi = $_POST['envoi'];                //aiguilleur
  $Exp = $_POST['idExp'];
        //Contenu des cases à cocher
if ($envoi == 'yes')
 
  {

je crée les tableaux dont j'aurai besoin
$data_x =array();

$data_y1= array();

$data_y2=array();

Pour chaque ligne de donnée récupéré par la chekbox, j'utilise après la fonction "split" pour récupérer chaque donnée dans une variable, et j'en profite pour la rajouter au tableau qui m'intéresse

foreach ($Exp as $key => $value)
list($datax, $datay1, $datay2) = split('[,]', $value);
echo "splitx= $datax";
echo "splity1= $datay1";
echo "splity2= $datay2";

    $data_x[]=$datax;
      $data_y1[]=$datay1;
      $data_y2[]=$datay2;

Et voilà... Surement pas très orthodoxe mais ca marche    

OKHLAOMA
0
nautilus99 Messages postés 661 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 18 septembre 2009 1
23 juin 2009 à 23:39
Oui, ta solution fonctionne. Celle que je te proposais a un seul avantage, plus universelle.
0
Rejoignez-nous