a l'origine, l'affichage se fait dans un tableaux ou les colones sont les jours du mois, les lignes sont les salles disponibles et donc les cellules la reservation d'une salle.
aprés avoir modifié l'affichage de ces reservation (dans les cellules) le tableaux me pose un gros probleme de mise en page, de ce fait je desire remodeler le script pour obtenir un tableaux où les colones serait les salles et les lignes les jours du mois.
voici le script modifié mais qui ne fonctionne pas :
<?php
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>";
}
echo "</tr>";
// 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";
echo "<td valign=top height=50 class=\"cell_month\"><div class=\"monthday\"><a title=\"".htmlspecialchars($vocab["see_all_the_rooms_for_the_day"])."\" href=\"day.php?year=$year&month=$month&day=$cday&area=$area\">$cday</a></div></td>\n";
// pour chaque salle
for ($ir = 0; ($row = sql_row($res, $ir)); $ir++){
// affiche l'heure des reservation dans
echo "<td>".$d[$cday]["data"][$i]."</td>";
// puis les reste des detail ...
// ......
}
echo "</tr>";
}
echo "</table>\n";
?>
voici les fonctions que j'utilise :
<?php
function sql_query ($sql)
{
$r = mysql_query($sql);
return $r;
}
function sql_row ($r, $i)
{
if ($i >= mysql_num_rows($r))
{
mysql_free_result($r);
return 0;
}
mysql_data_seek($r, $i);
return mysql_fetch_row($r);
}
?>
la je recupere les reservation :
<?php
$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";
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];
}
?>
voici l'erreur que j'obtient :
Code : Tout sélectionner
Warning: mysql_num_rows(): 251 is not a valid MySQL result resource in c:\program files\easyphp1-8\www\gessal\mysql.inc.php on line 100
Warning: mysql_free_result(): 251 is not a valid MySQL result resource in c:\program files\easyphp1-8\www\gessal\mysql.inc.php on line 10je suis sur que mon erreur viens des boucles que je n'utilise pas correctement !
si quelqu'un comprend le resultat desiré un peu d'aide serait la bienvenue.
merci d'avance.