Ik heb het volgende script verzonnen, maar dat voldoet niet. Je krijgt nl. wel netjes een html-tabel met voor iedere dag een kolom en voor ieder stuk gereedschap een rij, en alle uitleendagen worden aangegeven door een grijze kleur en een X. Maar het gaat mis als een gereedschap meer dan eenmaal per maand wordt uitgeleend en ingeleverd .
Dit is het script, wat dus werkt bij eenmaal uitlenen per maand:
<?php
//dit gaat natuurlijk straks uit een select vak komen
$maand=oktober;
//eerst kalender maken
if($maand=='oktober'){
$aantaldagen=31;
}
//eerst de maandkalender maken
print("oktober");
print("<table border=1 bordercolor=black cellspacing=0 cellpadding=0><tbody><tr><td>gereedschap</td>");
for ( $dag = 1; $dag <= $aantaldagen; $dag += 1) {
print("<td>$dag</td>");
}
print("</tr>");
//nu per stuk gereedschap de zaak regelen
$host="localhost";
$gebruiker="*****";
$wachtwoord="*****";
$DBNaam="test";
$Verbinding= mysql_connect($host, $gebruiker, $wachtwoord);
$Opdracht= "SELECT * from gereedschap order by naam ASC";
$Resultaat = mysql_db_query($DBNaam,$Opdracht,$Verbinding);
//lus per kamer
while($Rij=mysql_fetch_array($Resultaat)){
$gereedschap=$Rij['naam'];
$gereedschap_ID=$Rij['gereedschap_ID'];
//ieder gereedschap krijgt 1 rij
print("<tr><td>$gereedschap</td>");
//hieronder per gereedschap de uitleenmomenten eruit halen
$Opdrachtres= "SELECT * from uitlenen WHERE gereedschap_ID=$gereedschap_ID";
$Resultaatres = mysql_db_query($DBNaam,$Opdrachtres,$Verbinding);
//A
while($Rijres=mysql_fetch_array($Resultaatres)){
$gereedschap=$Rijres['gereedschap'];
$uitleendatum=$Rijres['uitleendatum'];
$inleverdatum=$Rijres['inleverdatum'];
$uitleen = explode ("-", $uitleendatum);
$uitleendag=$uitleen[2];
$inlever = explode ("-", $inleverdatum);
$inleverdag=$vertrekdatum[2];
for ( $dag = 1; $dag <= $aantaldagen; $dag += 1) {
if($dag>=$uitleendag AND $dag<=$inleverdag){
$bgcolor="silver";
$waarde="X";
}else{
$bgcolor="white";
$waarde="";
}
print("<td bgcolor=$bgcolor>$waarde</td>");
}
}
//A
print("</td></tr>");
}
//eind lus per gereedschap
print("</tbody></table>");
?>
Maar nu zit ik dus klem: want als een hamer 2 maal wordt uitgeleend, dan worden er weer 31 cellen aan een rij toegevoegd. En als ik binnen de lus een nieuw erij laat beginnen dan krijgt een tweemaal uitgeleende hamer ook 2 rijen. ik zoek dus een manier om eerst per gereedschap alle uitleen en inleverdata te verzamelen (dus enkele malen de while-lus doorlopen) en die waarden in variabelen op te slaan om daarna pas de rij met cellen te schrijven.
Inloggegevens verwijderd.
SanThe.