oula c'est vrai dezolé j'ai posté un peu vite je devait aller mager
ca fonctionne un peu mieux je n'ai plus l'erreur mysql_num_rows grace a la boucle while ( avec la boucle for en commentaire ca persiste ) mais il m'est tj impossible d'obtenir le resultat desiré.
par contre je pense ne pas avoir donné toute les infos pour que vous puissiez m'aider alors je vais m'expliquer un peu.
donc, je cherche a modifier l'affichage d'un tableau de reservation de salles créer a l'aide d'une base de donnée.
pour ce-faire le script utilise 1 table pour les reservation puis une seconde pour les salles disponibles.
le resultat desiré est celui-ci :
1. Recuperation des reservation
2. Recuperation des infos de salles (noms,id,...)
3. Ouverture d'une table html
4. Creation d'une ligne d'entete
5. Dans cette ligne creation de cellules contenant les diferentes salles dispo.
6. Fermeture de l'entete
7. Creation des 30/31 ligne de chaque jours du mois (boucle)
8. Dans chaque ligne creation de cellules equivalent au nombre de salles (boucle while)
9. pour chaque cellules verifie si reservation pour ce jour et pour cette salle.
10. Si reservation -> affichage details reservation.
11. Fermeture de chaque lignes
12. Fermeture de la table html
voici le code:
en premier lieu, je recupere toute les reservations
$sql = "SELECT
start_time,
end_time,
grr_entry.id,
name,
create_by,
room_name,
statut_entry,
grr_entry.description
FROM
grr_entry inner join grr_room on grr_entry.room_id=grr_room.id
WHERE
(start_time <= $month_end AND end_time > $month_start and area_id='".$area."')
ORDER
by start_time,
end_time,
grr_room.room_name";
je les stock
for ($i = 0; ($row = sql_row($res, $i)); $i++)
{
$d[$day_num]["id"][] = $row[2];
$d[$day_num]["who"][] = $row[3]." - ".$vocab["created_by"].$row_user[0]." ".$row_user[1];
$d[$day_num]["who1"][] = $row[3];
$d[$day_num]["room"][] = $row[5] ;
$d[$day_num]["res"][] = $row[6];
if ((isset($display_full_description)) and ($display_full_description==1))
$d[$day_num]["description"][] = $row[7];
}
je crée le tableau
echo "<table border=2 width=\"980px\">\n";
recupere toutes les salles dispo
$sql = "select room_name, capacity, id, description from grr_room where area_id=$area order by order_display,room_name";
$res = sql_query($sql);
ouverture d'une ligne d'entete
echo "<tr><th></th>";
// pour chaque salle
for ($ir = 0; ($row = sql_row($res, $ir)); $ir++){
// affiche une cellule d'entete contenant le nom de la salle
echo "<th>" . htmlspecialchars($row[0]) ."</th>";
}
recupere toutes les salles dispo une seconde fois car $row à été vidé
$sql = "select room_name, capacity, id, description from grr_room where area_id=$area order by order_display,room_name";
$res = sql_query($sql);
je crée les 31 ligne pour chaque jour du moi
// declaration du timestamp
$t2=0;
// pour choque jour du mois
for ($k = 0; $k<$days_in_month; $k++) {
// calcul du jour courant
$cday = date("j", $t2);
// ajoute 24h au timestamp
$t2 += 86400;
// ouverture d'une ligne
echo "<tr>\n";
// affiche le no du jour dans la 1er cellule
echo "<td><div><a href=\"day.php?year=$year&month=$month&day=$cday&area=$area\">$cday</a></div></td>\n";
creation des cellules de chaque salle
// pour chaque salle
$i=0;
while($row = mysql_fetch_row($res)){
echo "<td>".$d[$cday]["data"][$i]."</td>";
}
/*for ($ir = 0; ($row = sql_row($res, $ir)); $ir++){
// affiche l'heure de reservation
echo $d[$cday]["data"][$i];
}
fermeture de chaque ligne
echo "</tr>";*/
}
fermeture de la table html
echo "</table>\n";
voila j'espere que vous voyez un peu mieux d'ou viens mon probleme, grace a la boucle while j'arrive a l'etape 8 sans soucis malheureusement cela ne fonctionne que pour la premiere ligne.