Remplir un array à partir d'une bdd

Résolu/Fermé
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 16 janvier 2023 - Modifié par emrh le 26/01/2015 à 12:00
Xavierdu34 Messages postés 216 Date d'inscription lundi 2 décembre 2013 Statut Membre Dernière intervention 10 octobre 2016 - 26 févr. 2015 à 14:38
Bonsoir à tous...

Je suis en train de rendre dynamique une page html qui affichait l'évolution d'un
chiffre d'affaire.

J'ai donc créé un formulaire qui me sert à remplir une base de données avec les 3
champs suivants :
annee_ca (exemple 2013),
mois_ca (exemple 4 pour avril) et
chiffre_ca (exemple 123456 pour 123.456,00 €).
(Cette partie là fonctionne parfaitement. Je peux même modifier un chiffre d'affaire
déjà renseigné en saisissant une deuxième fois l'année et le mois)


J'aimerai maintenant remplir une table html (tr, td, etc...) avec les éléments de cette
base. Je suppose que le plus simple serait d'utiliser un array, mais je n'ai aucune idée
sur la manière de tourner ce problème en php.

En fait, je pensais passer une valeur à une variable pour obtenir : $an2013[4] ='123456';
pour chiffre d'affaire d'avril 2013 est 123.456,00 €, mais je bloque.

J'ai commencé à déclarer mes tableaux vides :

// Déclaration des array 'années de chiffre d'affaire' :
$an2018 = array();


pour ensuite à l'aide d'un while injecter le chiffre d'affaire avec le mois comme numéro
mais je ne sais pas comment passer en variable le nom de mon tableau $anXXXX ?
Je ne sais d'ailleurs même pas si c'est la bonne solution !

Dernière info, les chiffres d'affaires ne sont pas rangés dans l'ordre dans la base de donnée
bien sûr...

Merci d'avance à tous ceux qui pourraient me donner une piste !


Mon code en panne :

<?php
// Déclaration de l'array 'mois' :
$mois =array('JANVIER','FEVRIER','MARS','AVRIL','MAI','JUIN','JUILLET','AOUT','SEPTEMBRE','OCTOBRE','NOVEMBRE','DECEMBRE');

// Déclaration des array 'années de chiffre d'affaire' : 
$an2018 = array(); $an2017 = array(); $an2016 = array();
$an2015 = array(); $an2014 = array(); $an2013 = array();
$an2012 = array(); $an2011 = array(); $an2010 = array();
$an2009 = array(); $an2008 = array(); $an2007 = array();
$an2006 = array(); $an2005 = array(); $an2004 = array();
$an2003 = array(); $an2002 = array(); $an2001 = array();

// Remplissage de l'array 'années de chiffre d'affaire' avec la base de donnée :
while ($donnees = mysql_fetch_array($sql2)) {
     // A PARTIR D'ICI, JE NE SAIS PAS COMMENT FAIRE !
     // pour avoir comme résultat quelques chose comme $an2012[9]=('45875') par exemple !
     $an . $donnees['annee_ca']($donnees['mois_ca'])=[$donnees['chiffre_ca'];
}


// Tableau : 
for ($m=1; $m<13; $m++){
 ?><tr><?php
  ?><td align="left"> <?php echo $mois[$m-1]; ?> </td><?php
    for ($annee=2018; $annee>2009;--$annee) {
    ?><td align="right"><?php
      ?></td><?php
      }
     ?></tr><?php
}
?>
 

2 réponses

emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 16 janvier 2023 16
Modifié par emrh le 26/01/2015 à 19:13
En fait, j'ai trouvé ça qui fonctionne, mais cela me semble pas "pro",
je pense que la solution est dans un array...


<?php
// Déclaration de l'array 'mois' :
$mois =array('JANVIER','FEVRIER','MARS','AVRIL','MAI','JUIN','JUILLET','AOUT','SEPTEMBRE','OCTOBRE','NOVEMBRE','DECEMBRE');

for ($m=1; $m<13; $m++){ ?>

<tr>
<td align="left"> <?php echo $mois[$m-1]; ?> </td>
<?php
for ($annee=2018; $annee>2009;--$annee) {?>
<td align="right"><?php

while ($data = mysql_fetch_array($sql2)){
if ($data['annee_ca']==$annee && $data['mois_ca']==$m){
echo $data['chiffre_ca'];
}
}
echo ' ' . '</td>';
mysql_data_seek($sql2,0);
}
}
0