06. januar 2011 - 17:57Der er
18 kommentarer og 1 løsning
Kun vise een række af hver person fra liste
Jeg har forenklet set en tabel, der er en liste over brugeres bookings. Jeg lister fra denne tabel for at vise hvem der tilbyder booking. Brugerne har et unikt brugernavn og når jeg kører do-while-løkken forsøger jeg med en if-sætning at udelukke de ekstra listninger fra hver bruger. Jeg har prøvet følgende, som jo ikke virker. Jeg vil gerne holde fast i at bruge if-sætning, da jeg har færdiggjort min SQL sætning og ikke vil forstyrre i den.
Jeg kan ikke se hvad der skulle være i vejen med at modificere SQL sætningen? Det ville da være mere effektivt og så slipper du for at lave molbo kode - men det er selvfølgelig dit eget valg.
Men derfor vil jeg gerne se din SQL sætning, for at se hvor simpelt jeg kan forsøge at lave det. Og den omkringliggende while() løkke for $row ville også være rar.
det lyder godt at du er frisk på det, for det jeg er kørt noget fast i det må jeg sige. Her er udskrevet SQL sætning:
SELECT properties.*, booked.* FROM properties, booked WHERE properties.case_id = booked.case_id_b AND properties.active = 'yes' AND booked.active = 'yes' AND ('2010-12-01' < booked.arrival AND '2011-01-05' < booked.arrival ) OR ('2010-12-01' > booked.departure AND '2011-01-05' > booked.departure )AND properties.distance_to_beach <='1' AND properties.distance_to_town_center <='2'
SELECT properties.*, booked.* FROM properties, booked WHERE properties.case_id = booked.case_id_b AND properties.active = 'yes' AND booked.active = 'yes' AND ( '2010-12-01' < booked.arrival AND '2011-01-05' < booked.arrival ) OR ( '2010-12-01' > booked.departure AND '2011-01-05' > booked.departure ) AND properties.distance_to_beach <='1' AND properties.distance_to_town_center <='2' GROUP BY booked.userid
SELECT properties.*, booked.* FROM properties, booked WHERE properties.case_id = booked.case_id_b AND properties.active = 'yes' AND booked.active = 'yes' AND ('2010-12-01' < booked.arrival AND '2011-01-05' < booked.arrival ) OR ('2010-12-01' > booked.departure AND '2011-01-05' > booked.departure) AND properties.distance_to_beach <='1' AND properties.distance_to_town_center <='2' GROUP BY booked.case_id_b
repox: HOV. Jeg manglede at indsætte en bruger i booked tabellen. Og nu virker det sådan set med dit forslag. Når jeg søger på et senere ledigt tidspunkt på året listes de ledige dog ikke rigtigt, så jeg må bare prøve at hitte ud af det. Selvfølgelig hvis du har ideer til dato selectionen. Ellers åbner jeg et spørgsmål med en simpel molbo-kode til at eliminere de ekstra listninger...
SELECT properties.*, booked.* FROM properties, booked WHERE properties.case_id = booked.case_id_b AND properties.active = 'yes' AND booked.active = 'yes' AND ( ( '2010-12-01' < booked.arrival AND '2011-01-05' < booked.arrival ) OR ( '2010-12-01' > booked.departure AND '2011-01-05' > booked.departure ) ) AND properties.distance_to_beach <='1' AND properties.distance_to_town_center <='2' GROUP BY booked.case_id_b
Vrøvl, jeg mener omvendt, jeg har indkapslet det nu, men ser ingen ændring, men det er sikkert godt med indkapslingen.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.