Données php dans un tableau

Fermé
Katus.Net - 18 sept. 2008 à 16:57
Xil Messages postés 350 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 11 juin 2009 - 19 sept. 2008 à 09:36
Bonjour a vous,

J'aurais besoins d'aide pour créer une fonction sur laquelle je bute vraiment.

Je voudrais générer un tableau avec le nombre de date = au nombre de jour ; (date de debut - date de fin) = nb de jour.
Ce n'est pas tout, je voudrais pouvoir afficher des données dans le tableau. en fonction de la date de la case.
Si la donnée = la date de la case alors l'objet se range dans cette case.
POur ce qui est de la génération du tableau, facile, ça c'est bon mais pour ce qui est de ranger les données a l'interrieur, je n'y arrive pas.

Pouvez vous m'aider, merci.

<table align=center" cellspacing="0" cellpadding="0">
<tr>
<?php
for($n=0; $n<=$nb_jours; $n++)
{
?>
<td width="170px" height="170px" valign="top" >
<div style="width:100%; height:20px;" align="center">
<?php
// Mes variables d'affichage des dates dans chaque case
$date_increment = $date_debut + (86400 * $n);
$dates = date('d/m/Y', $date_increment);
echo $dates;
// A partir d'ici je voulais afficher les données lues en base
while($aff_order_nicole = mysql_fetch_array($aff_disorder_nicole))
{
if($aff_order_nicole['jour_mise'] == $date_increment)
{
echo "<br /> Données";
}
}
echo '</td>';
//Ce if sert a générer un tableau de 5 colonne par 8 ligne maxi car il y n'y as pas plus de 40 jours
if($n == 4 OR $n == 9 OR $n == 14 OR $n == 19 OR $n == 24 OR $n == 29 OR $n == 34 OR $n == 39)
{
echo '</tr><tr>';
}
}
?>
</tr>
</table>


$aff_order_nicole['jour_mise'] : Valeur en timestamp
$date_increment : Valeur en timestamp

Je me suis dis si la première valeur = le seconde le if est true et affiche l'echo mais ça ne marche pas car le for régénère toutes les données, le while y compris donc sa ne marche pas, avez vous une solution ?
A voir également:

2 réponses

Utilisateur anonyme
19 sept. 2008 à 09:13
tu separes tes données par un caractere particulier par exemple |
tu mets la date en premier
tu mets la ligne dans un tableau et tu faist un sort(tableau,numeric )
-1
Xil Messages postés 350 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 11 juin 2009 257
19 sept. 2008 à 09:36
Bonjour,

Tu devrais récupérer toutes tes valeurs dans un tableau PHP avec leur date en indice. Du style :

while ($row = mysql_fetch_array($aff_disorder_nicole)) {
   $array[date('dmy',$row['date'])] = $row;
    //Ou  $array[date('dmy',$row['date'])][] = $row;    si tu en as plusieurs par jour
}

Et ensuite afficher le tableau html. Et dans les case :
$date = date('dmy',$current_date);
echo "<td>";
if (array_key_exists($date, $array)) {
   echo $array[$date]['colonne_a_afficher'];   //Ou echo $array[$date][$i]['colonne_a_afficher'];  (avec $i à incrémenter dans une boucle)
}
echo "</td">;


J'ai du faire un script du genre il y'a quelques mois. Je devais afficher dans un tableau, par jour, le nombre de clic d'un utilisateur sur un certain lien. C'est comme ca que j'ai procédé.
-1