01. juli 2008 - 11:25Der er
30 kommentarer og 1 løsning
kalender i php med avent gemt i database
Jeg har brugt kalenderen på http://keithdevens.com/software/php_calendar som flere steder her på eksperten anbefales. (syntes også selv den er god) Spørgsmål: Er der nogen af jer eksperter der har fået indbygget events i denne kalender? Jeg ønsker events gemt i sql db. (den del er jeg vand til via et adminpanel.) og ved mus over en specifik dato skal der (fra db) vises et titel tag og samtidig være et link der kan hente avents fra db via get i url. Jeg har fået specifikke datoer til at være link og der (?archive=2008/May/03) kommer også noget fornuftigt i url via dette array forslag som er hentet i de mange eksempler på kiethé hjemmeside. days = array(
2=>array('?archive=2008/May/02'), 3=>array('?archive=2008/May/03','linked-day'), MEN hvordan for jeg dette array fra db?????
VIGTIGT. Jeg ønsker kun hjælp til denne kalender og ikke andre. Ligeledes er det vel rimeligt at point først afgives når den fungere som jeg har beskrevet at jeg ønsker. Se evt. her som ligner det jeg går efter.... http://www.hockeyklubben-odin.dk/
Kalender kører på (developer) ikke offentlig server, så jeg kan ikke tilbyde at vise den som den er nu....... MEN spørg hvis du ikke forstår min beskrivelse/spørgsmål/ønsker :-)
Du vil garanteret vise en måned af gangen, så du kan lave noget ala:
SELECT * FROM events WHERE MONTH(dato) = 7 AND YEAR(dato) = 2008 ORDER BY DAY(dato)
Så skal du bare have formatteret datoen, så du får DAY(dato) og den smider du så ind. Dog har jeg tidligere leget med den kalender, og du skal lave noget hack, da jeg ikke mener den kan klare flere events pr dag, som den er bygget nu.
Ved ikke hvorfor jakobdo, men select metoden virker ikke for mig.......
SELECT * FROM calendar WHERE MONTH(dato) = 3 AND YEAR(dato) = 2008 ORDER BY DAY(dato) virker ikke for mig, men SELECT * FROM calendar kommer korrekt med de data der er...... mener dog det skulle virke med din select metode.......mere info her.... http://www.tizag.com/sqlTutorial/sqldate.php her prøvet at ændre DAY(dato) til DAYOFMONTH(dato)....... min db er som følger: DROP TABLE IF EXISTS `calendar`; CREATE TABLE IF NOT EXISTS `calendar` ( `id` int(11) NOT NULL auto_increment, `dato` varchar(33) NOT NULL, `text` text character set utf8 collate utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
INSERT INTO `calendar` (`id`, `dato`, `text`) VALUES (1, '1206618676', 'dag som skal huskes'), (2, '1206705076', 'en anden vigtig dag.\r\n');
$query = mysql_query("SELECT DAY(dato) as DAG WHERE month(dato) = intval($_GET['month']) AND year(dato) = intval($_GET['year']) ORDER BY DAY(dato)"); $days = array(); while($row = mysql_fetch_assoc($query)){ $days[$row['dag']] = array('DIT_LINK_ELLER_INDHOLD'); }
Ser interessant ud....... Fik fejl pga. ''pinger....troe jwg de hedder..rettede
$query = mysql_query("SELECT DAY(dato) as DAG WHERE month(dato) = intval($_GET['month']) AND year(dato) = intval($_GET['year']) ORDER BY DAY(dato)"); til $query = mysql_query("SELECT DAY(dato) as DAG WHERE month(dato) = intval($_GET[month]) AND year(dato) = intval($_GET[year]) ORDER BY DAY(dato)"); og fejl forsvandt.... men der er nu følgende fejl i fetch_assoc() Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource
Database: DROP TABLE IF EXISTS `calendar`; CREATE TABLE IF NOT EXISTS `calendar` ( `id` int(11) NOT NULL auto_increment, `dato` date NOT NULL, `text` text character set utf8 collate utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
INSERT INTO `calendar` (`id`, `dato`, `text`) VALUES (1, '2008-03-27', 'en 2008-03-27 dag som skal huskes '), (2, '2008-03-12', 'en 2008-03-12 anden vigtig dag.\r\n'), (3, '2008-06-25', 'hej:2008 og måned 06\r\ndet er den 26 i dag'), (4, '2008-07-03', 'hej med dig i 7 måned den 3');
Der er jeg ikke med hvad du mener........ Måske det er hvor du skriver......DIT_LINK_ELLER_INDHOLD at du mener der skal stå noget ala.... fil.php?month=6&year=2007 MEN nu ved jeg at det hedder pling'er .. hiihi
TAK igen for oplysningen....... Største udfordring lå i at finde ud af at der ikke blev angivet fra hvilken db tabel data skulle hentes fra.... FROM calendar hvor tabel navn er calendar........ NÅ det virker nu...MEN der hvor der står $row[dato] i nedenstående kommer ikke noget op i urlén ved mus over eller click eksempelvis den 3 july 2008 på kalenderen http://testkalender.sluk.dk/inc_calendar.php
Løsningen blev.........denne select SELECT DAY(dato) as dag , MONTH(dato) as md , YEAR(dato) as aar FROM calendar WHERE MONTH(dato) = '$_SESSION[month]' ORDER BY DAY(dato) TUSINDE TAK jacobdo jeg har lært meget......om select
ved du om det er muligt at hægte denne på det nu eksisterende array (som virker)... $today=>array(NULL,NULL,$today_custom));// formaterer dags dato skulle ind som sidste linie gerne. (altså efter while løkken)
Det er netop dette eksempel jeg har brugt som udgangspunkt.......MEN ønsker ikke blink som alligevel ikke understøttes af alle browsere...... Jeg har derfor fået følgende til at virke uden/inden db understyttelse........ $time = time(); if($_GET["month"]=="" || date("n", $time) == $_GET["month"]){// hvis ingen gæt værdi eller get værdi er samme som nuværende måned $today = date('j',$time);//sætter dags dato }
$time = time(); setlocale(LC_ALL, 'danish', "da", "da_DK", "da_DK.iso8859-1"); $maaned = date("n", $time); echo generate_calendar(date('Y', $time), $maaned ,$days, 2, NULL, 1, $pn); ------------------------- Går ud fra at det er sådan du mener, men desværre ingen ændring.... script kører på linux server
UNDSKYLD...... selvfølgelig virker forslaget fra jakobdo...;-) Jeg satte linien ind i admin panelet (som også viser kalender) men tjekkede på front-end siden.....øv bøv kvajebajer
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.