snipe Skrevet 5. august 2011 Del Skrevet 5. august 2011 Driver å lager et mini-booking system til gjestehuset til familien min. Har kommet borti et lite problem som jeg ikke får til å løse. Foreløpig har jeg 2 tabeller i databasen. Tabell1: romliste (liste over alle rommene, med priser mm.) id - romnr - senger - pris - notat 1 - 1 - 2 - 600 - tv ødelagt 2 - 2 - 1 - 400 - osv. Tabell 2: reservasjoner (liste over reservasjoner) id - resromnr - navn - etternavn - sjekkinn - sjekkut 1 - 1 - per - olsen - 10-12-20 - 10-12-25 2 - 3 - lars - larsen - 10-12-20 - 10-12-23 ___________ Jeg har en kallender på siden, hvor man kan klikke på den dagen man vil sjekke om rommene er ledig / reservert den dagen.. Så la oss si at jeg har klikket på 10-12-22. Nå kommer problemet mitt. Jeg vil skrive ut alle rommene fra "romliste" og samtidig sjekke om det er noen reservasjoner den dagen fra "reservasjoner" $valgt_dato = 10-12-22; $hent_rom = @mysql_query("SELECT * FROM romliste, reservasjoner"); while($romliste=mysql_fetch_array($hent_rom)){ $nr = $romliste[romnr]; $resromnr = $romliste[resromnr]; $sjekkinn = $romliste[sjekkinn]; $sjekkut = $romliste[sjekkut]; if ($nr == $resromnr && $valgt_dato>= $sjekkinn && $valgt_dato < $sjekkut){ echo "Rom $nr (Reservert)<br />"; } else { echo "Rom $nr (Ledig)<br />"; } } Resultatet skal bli: Rom 1 (Reservert) Rom 2 (Ledig) Rom 3 (Reservert) Problemet virker som å ligge i @mysql_query("SELECT * FROM romliste, reservasjoner"); Så hvilken måte er best for meg å bruke dersom jeg skal hente verdier fra disse to tabellene. Får så å skrive ut alle rommene i "romliste" for så å markere dem som reservert dersom "$nr == $resromnr && $valgt_dato>= $sjekkinn && $valgt_dato < $sjekkut" stemmer. Er det en bedre måte jeg kan organisere dataen i databasen på får å gjøre dette lettere? Er åpen for forslag Lenke til kommentar
snipe Skrevet 5. august 2011 Forfatter Del Skrevet 5. august 2011 (endret) Fikk til en løsning, men virker litt konglete.. $valgt_dato = strtotime($_GET[date]); //Dato som ble klikket på i kalender $hent_rom = @mysql_query("SELECT * FROM roomliste"); // Henter liste over alle rom while($rom=mysql_fetch_array($hent_rom)){ $rom_nr = $rom[romnr]; // Rom nr $finn_reservert = @mysql_query ("SELECT * FROM reservasjoner WHERE resromnr='$rom_nr' AND $valgt_dato>=UNIX_TIMESTAMP(sjekkinn) AND $hent_rom<UNIX_TIMESTAMP(sjekkut)"); //Finner rom som er reservert denne dagen $reservert=mysql_fetch_array($finn_reservert); $reserverrom_nr = $reservert[resromnr]; // Rom nr på rom reservert denne dagen. if ($rom_nr == $reserverrom_nr){ //Rommet er opptatt } else { //Rommet er ledig } } Noen som vet om en letter måte? Endret 5. august 2011 av snipe Lenke til kommentar
molty Skrevet 5. august 2011 Del Skrevet 5. august 2011 For å ta begge inn i samme vil jeg anbefale INNER JOIN eller hva det no heter. Da kan du legge dem sammen og bruke det som "en tabell" hvis du skjønner hva jeg mener Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå