Booking side - den laver for mange tider
Hej alleHer er en lidt tricky fyr.
Jeg har bakset temmelig længe med det, men kan ikke få det til at spille. http://www.linder.dk/booking
Som man kan se så laves der ekstra tider - det skal der naturligvis ikke være. Så hvordan undgår man dette?
config.inc.php
<?
$dato = "2003-10-26";
$faktor = ".25";
$starttid = 7;
$sluttid = 14.75;
$cellid = $starttid;
$mouseover = "onmouseover=\"style.backgroundColor='#EBEBEB'\"";
$mouseout = "onmouseout=\"style.backgroundColor='#008000'\"";
$mousestyle = "style=\"cursor: pointer;\"";
$mouse = $mouseover." ".$mouseout." ".$mousestyle;
$onclick1 = "onclick=\"window.open('book.php?book_start=";
$onclick2 = "','hej','width=300,height=300')\"";
$connection = mysql_pconnect("localhost","user","password") OR DIE("Unable to connect to database");
mysql_select_db("database");
?>
~
index.php
<?
include("config.inc.php");
$x = $starttid;
?>
<html>
<body>
<table align="center">
<tr>
<td>Resource</td>
<?
//Her viser vi øverste linie, der angiver tiderne der kan bookes
while($x<=$sluttid) {
list($time, $minutter) = explode(".", $x);
if($time <= 9) { $time = "0".$time; }
if($minutter == "") { $minutter = "00"; $vistid = $time.":00"; }
if($minutter == 25) { $minutter = "15"; $vistid = ":$minutter"; }
if($minutter == 5) { $minutter = "30"; $vistid = ":$minutter"; }
if($minutter == 75) { $minutter = "45"; $vistid = ":$minutter"; }
echo "<td><font size=\"-1\">$vistid</font></td>";
$x = $x + $faktor;
}
$x = $starttid;
?>
</tr>
<?
echo "\n\n\n";
$resource_sql = "SELECT resource_id,navn from booking_resource where butik_id = '3'";
$resource_result = mysql_query($resource_sql) or die(mysql_error());
while($resource_row=mysql_fetch_array($resource_result)) {
$resource_id = $resource_row[0];
$resource_navn = $resource_row[1];
$writeout_line = "<tr><td><font size=\"-1\">$resource_navn</font></td>";
$booking_sql = "SELECT slut from booking_data where resource_id = '$resource_id' AND dato = '$dato' order by slut desc limit 1";
$booking_result = mysql_query($booking_sql) or die(mysql_error());
$rows = mysql_num_rows($booking_result);
while($booking_row=mysql_fetch_array($booking_result)) { $total_slut_tid = $booking_row[0]; }
$booking_sql = "SELECT booking_id,start,slut from booking_data where resource_id = '$resource_id' AND dato='$dato' order by start asc";
$booking_result = mysql_query($booking_sql) or die(mysql_error());
$laststop = $starttid;
while ($booking_row = mysql_fetch_array($booking_result)) {
$booking_id = $booking_row[0];
$booking_start = $booking_row[1];
$booking_slut = $booking_row[2];
$booking_resource_id = $booking_row[3];
if ($booking_start > $laststop) {
$emptycells = ($booking_start - $laststop) / $faktor;
$laststop = $booking_slut;
}
$colspan = ($booking_slut - $booking_start) / $faktor;
if ($emptycells >= 1) { for($i=1;$i<=$emptycells;$i++) {
$onclick = $onclick1.$cellid."&dato=$dato&res=$resource_id".$onclick2;
$writeout_line .= "<td bgcolor=\"#008000\" $mouse $onclick>";
$writeout_line .= "<font size=\"-2\">";
$writeout_line .= "$cellid</font></td>";
$cellid = $cellid + $faktor;
}
}
$writeout_line .= "<td colspan=\"$colspan\" bgcolor=\"#FF0000\"><font size=\"-2\">hej</font></td>";
$cellid = $cellid + ($colspan * $faktor) - $faktor;
if ($booking_slut == $total_slut_tid) {
$endcells = ($sluttid - $total_slut_tid + $faktor) / $faktor;
for($i=1;$i<=$endcells;$i++) {
$cellid = $cellid + $faktor;
$onclick = $onclick1.$cellid."&dato=$dato&res=$resource_id".$onclick2;
$writeout_line .= "<td bgcolor=\"#008000\" $mouse $onclick><font size=\"-2\">$cellid</font></td>"; }
}
$cellid = $cellid + $faktor;
}
if ($rows == 0) {
while($x<=$sluttid) {
$onclick = $onclick1.$x."&dato=$dato&res=$resource_id".$onclick2;
$writeout_line .= "<td bgcolor=\"#008000\" $mouse $onclick><font size=\"-2\">$x</font></td>";
$x = $x + $faktor;
}
}
$writeout_line .= "</tr>\n";
echo "$writeout_line";
$emptycells = 0;
$cellid = $starttid;
}
?>
</table>
</body>
</html>
Håber jeg har forklaret det tydeligt nok.
