19. december 2003 - 10:52Der er
25 kommentarer og 1 løsning
Logo i kalender
Jeg har fået lavet et kalender-script, og det virker også ganske glimrende.. Men nu vil jeg gerne have en "type" på hver dato - altså om det f.eks. er en koncert, biograf premiere osv. Som scriptet er lige nu, viser jeg et billede til højre for hver overskrift. Jeg vil i stedet gerne have at den bliver vist i venstre kolonne - altså under datoerne. Kan det lade sig gøre?
function getBookings($month, $year) { $sql = mysql_query(" SELECT DAYOFMONTH(startdate) AS day, days, rooms, title, beskrivelse, type FROM testkalender WHERE MONTH(startdate) = '$month' && YEAR(startdate) = '$year' ORDER BY day ASC ") or die(mysql_error());
$res = array(); if (!mysql_num_rows($sql)) return $res;
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Slettet bruger
19. december 2003 - 15:01#1
Lav en flok billeder, et for hver type. De skal hedde det samme som typen. Læg dem i samme mappe.
For at gøre det lidt nemmere at rette til, laver du 2 variabler et sted i toppen af dist script.
$picfolder="typepics/"; // den mappe billederne er i. $pictype=".png"; // eller hvilken fælles endelse dine billeder har
Der, hvor der står // BILLEDE SKAL IND HER !!! indsætter du følgende:
if (!empty($ASSIGNMENT[$i]['type'])){ echo "<img src='{$picfolder}{$ASSIGNMENT[$i]['type']}{$pictype}'>"; }
Jeg havde lige misforstået lidt om dit script, tror jeg.
Din getBookings()-funktion kan godt returnere mere end en overskrift til samme dag, ikke? Og det vil dermed være krævet, at den også kan vise mere end et billede pr. dato?
Ja, det er nemlig rigtigt.. Den kan godt vise mange "events" på en dag!
Og så var det jeg tænkte, i stedet for at have et billede sat ind ved overskriften, så kunne jeg godt tænke mig at få det sat ind lige under hver dato - i tilfælde af flere events, skal billederne være under hinanden ud for hver beskrivelse. (BILLEDE SKAL IND HER !!! skulle være stedet :] )
Kan det lade sig gøre?
Synes godt om
Slettet bruger
20. december 2003 - 00:14#5
Naturligvis kan det lade sig gøre.
Problemet er, at getBookings-funktionen smider alle overskrifter, der hører til samme dag ind i en enkelt streng, så det skal der laves om på.
Jeg vil lige tænke over det, men det vil nok komme til at blive noget med et ekstra niveau på arrayet.
Synes godt om
Slettet bruger
20. december 2003 - 01:26#6
Jeg har ikke afprøvet, men den her burde virke. Jeg har lavet en undertabel til events, så billederne kommer til at stå ud for den tilhørende tekst. Ellers ville en lang tekst kunne have rykket al teksten.
function getBookings($month, $year) { $sql = mysql_query(" SELECT DAYOFMONTH(startdate) AS day, days, rooms, title, beskrivelse, type FROM testkalender WHERE MONTH(startdate) = '$month' && YEAR(startdate) = '$year' ORDER BY day ASC ") or die(mysql_error());
$res = array(); if (!mysql_num_rows($sql)) return $res;
Hmm, der går et eller andet helt galt! Alle datoerne klumber sig sammen samme dag...
Vil du ikke prøve at teste koden selv og se hvad der er galt?
Synes godt om
Slettet bruger
21. december 2003 - 02:34#10
Nu skulle den være løst. Jeg prøvede selv (dog uden billeder og stylesheet), og kunne godt se problemet. Det var et par elementer i arrayet, der blev forkert lavet i getBookings. Nu ser det ud til at det hele virker som det skal. Eventuelt skal der pilles lidt ved den HTML, der bliver udskrevet, men det er nemmere at se, når det kommer ind på siden.
function getBookings($month, $year) { $sql = mysql_query(" SELECT DAYOFMONTH(startdate) AS day, days, rooms, title, beskrivelse, type FROM testkalender WHERE MONTH(startdate) = '$month' && YEAR(startdate) = '$year' ORDER BY day ASC ") or die(mysql_error());
$res = array(); if (!mysql_num_rows($sql)) return $res;
Det ser rigtig godt ud... Du har fortjent pointene 100%!!
Synes godt om
Slettet bruger
21. december 2003 - 11:31#12
Takker
Synes godt om
Slettet bruger
21. december 2003 - 11:36#13
Der bør forresten nok rettes lidt på databaseopslaget. Som det er nu, vil den ikke vise dag 2 af en 2-dages event, der starter på den sidste i måneden.
Jeg vender tilbage med en eventuel løsning på det.
function getBookings($month, $year) { $sql = mysql_query(" SELECT DAYOFMONTH(startdate) AS day, days, rooms, title, beskrivelse, type FROM testkalender WHERE MONTH(startdate) = '$month' && YEAR(startdate) = '$year' ORDER BY day ASC ") or die(mysql_error());
$res = array(); if (!mysql_num_rows($sql)) return $res;
Ok det er også helt iorden! Glæder mig til at høre fra dig...
Synes godt om
Slettet bruger
27. december 2003 - 17:16#18
Hvis din MySQL er ny nok, skulle det virke med dette db-opslag:
$sql = mysql_query(" (SELECT DAYOFMONTH(startdate) AS day, days, rooms, title, beskrivelse, type FROM testkalender WHERE MONTH(startdate) = '$month' && YEAR(startdate) = '$year') UNION (SELECT 1 AS day, TO_DAYS(startdate)-TO_DAYS('$year-$month-01')+days AS days_number, rooms, title, beskrivelse, type FROM testkalender WHERE startdate<'$year-$month-01' && TO_DAYS(startdate)+days>TO_DAYS('$year-$month-01') ") or die(mysql_error());
You have an error in your SQL syntax near '(SELECT DAYOFMONTH(startdate) AS day, days, rooms, title, beskrivelse, type ' at line 2
Synes godt om
Slettet bruger
27. december 2003 - 23:58#20
OK, så er MySQL-versionen tilsyneladende ikke ny nok.
Synes godt om
Slettet bruger
28. december 2003 - 00:14#21
SELECT TO_DAYS(startdate)-TO_DAYS('$year-$month-01')+1 AS day, days, rooms, title, beskrivelse, type FROM testkalender WHERE startdate<='$year-$month-31' && TO_DAYS(startdate)+days>=TO_DAYS('$year-$month-01')
Sådan her? $sql = mysql_query(" (SELECT DAYOFMONTH(startdate) AS day, days, rooms, title, beskrivelse, type FROM testkalender WHERE MONTH(startdate) = '$month' && YEAR(startdate) = '$year') UNION for($i=1; $i<=$foo['days']; $i++) { if ($today>0){ $res[$today]['title'][] = "<b>".$foo['title']."</b> (Dag ".$i."/".$foo['days'].")<BR>"; $res[$today]['picture'][]="<IMG SRC=graph/kalender_".$foo['type'].".jpg alt=".$foo['type']." name=".$foo['type'].">\n"; $res[$today]['beskrivelse'][]=$foo['beskrivelse']."\n\n"; $res[$today]['totalrooms'] = $res[$today]['totalrooms'] + $foo['rooms']; } $today++; } ") or die(mysql_error());
Melder fejlen: Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in /var/www/html/lektiecafe/undersider/kalender.php on line 16
Synes godt om
Slettet bruger
28. december 2003 - 00:56#23
Sådan her:
function getBookings($month, $year) { $sql = mysql_query(" SELECT TO_DAYS(startdate)-TO_DAYS('$year-$month-01')+1 AS day, days, rooms, title, beskrivelse, type FROM testkalender WHERE startdate<='$year-$month-31' && TO_DAYS(startdate)+days>=TO_DAYS('$year-$month-01') ") or die(mysql_error());
$res = array(); if (!mysql_num_rows($sql)) return $res;
Ja, og man skulle også få meget lange events med. Altså hvis der skulle være en, der starter i en tidligere måned, og slutter i en senere.
Mere præcist: hvis man beder om december 2003, leder den efter alle events, der starter før eller på 31/12-2003 og slutter på eller efter 01/12-2003
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.