Avatar billede michaeltryl Seniormester
02. juni 2006 - 20:06 Der er 8 kommentarer og
1 løsning

kalender/mysql forspørgsel

hej jeg søger en ide til hvordan jeg gør dette.
jeg skal lave en side hvor en bruger på min side kan indtaste en dato, f.eks 2-6-2006 og trykke på send.
herefter skal siden udskrive hvad der i databasen står under den 2-6-2006.
derud over skal jeg have en side hvor jeg kan tilføje ting til forskellige dage, samt kunne redigere/slette de forskellige events.
er der en simpel måde at gøre dette på?
Avatar billede venchil Nybegynder
02. juni 2006 - 21:35 #1
Det er der da... Du skal jo nok have en MySQL-tabel, hvor du har alle dine events i. Dit dato-felt skal så være af formatet "datetime", og heri skal du så have din tid. Når du vil trække dine events ud, skal du bare gøre sådan:

<?php

$date = $_POST["date"]; // HENTER DATOEN FRA ET FELT, HER I FORMATET 06-2006
$date_exp = explode("-", $date); //$date_exp[0] == 06, $date_exp[1] == 2006

*****MYSQL-CONNECT*****

$getevents = mysql_query("SELECT * FROM tabel WHERE MONTH(tidsfelt)='".$date_exp[0]."' AND YEAR(tidsfelt)='".$date_exp[1]."'");

while ($events = mysql_fetch_array($getevents)) {
  $begivenhed = $events[begivenhed];

  echo $begivenhed;
  echo "<br>";
}

?>

Så vidt jeg husker (jeg har bare skrevet det i dette her tekstfelt, ikke via. editor) er det sådan her det bør gøres. Når du formatterer med datetime i dit database-felt, kan du let trække dine data ud fra en tabel via. MONTH(felt), og YEAR(felt), dette her er kun med måned og år, men den kan let udbygges med mere: dato, tidsrum osv.

Jeg har lige lavet en meget simpel while-løsning, men den kan selvfølgelig bare modificeres...
Avatar billede michaeltryl Seniormester
03. juni 2006 - 17:46 #2
jeg har nu haft tid til at lege med det og min kde ser sådan ud
men når jeg i feltet taster f.eks 06-2006 bliver der ikke skrevet noget.
jeg har indstastet 2 events i min database
1 den 03-06-2006
og en den 20-06-2006

        <FORM name="gaestebog" method="POST" ACTION="kalender.php">
        <h5>
        Dato: <input class="inputfelt" name="date" size="30" maxlength="255"> <br>
        <input class="inputknap" type="submit" value="Send">
        </form></h5>
     
<?
//henter dato fra formular
$date = $_POST["date"]; // HENTER DATOEN FRA ET FELT, HER I FORMATET 06-2006
$date_exp = explode("-", $date); //$date_exp[0] == 06, $date_exp[1] == 2006

//skab forbindelse til databasen
mysql_connect("****", "****", "****") or die(mysql_error());
mysql_select_db("****") or die(mysql_error());

$getevents = mysql_query("SELECT * FROM kalender WHERE MONTH(date)='".$date_exp[0]."' AND YEAR(date)='".$date_exp[1]."'");

while ($events = mysql_fetch_array($getevents)) {
  $begivenhed = $events[begivenhed];

  echo $begivenhed;
  echo "<br>";
}

?>

mine database felter er således
kalenderID - int
date - datetime
events - varchar

siden jeg har prøvet på er her www.magiske-michael.dk/prove/kalender.php
Avatar billede venchil Nybegynder
03. juni 2006 - 17:56 #3
Der er ikke noget felt i den tabel der hedder begivenhed? Ret $events[begivenhed] til $events[events] :)
Avatar billede michaeltryl Seniormester
03. juni 2006 - 18:20 #4
tak det virker nu, men har prøvet at gøre sådan her

$getevents = mysql_query("SELECT * FROM kalender WHERE DATE(date)='".$date_exp[0]."' AND MONTH(date)='".$date_exp[1]."' AND YEAR(date)='".$date_exp[2]."'");

for at kunne søge på datoen også men det virker ikke
der kommer ingen fejl melding, men den skriver heller ikke noget ud.

kan det egentlig lade sig gøre at når f.eks dagen idag er forbi bliver alle events fra idag automatisk slettet fra databasen, eller er det meget avanceret?
Avatar billede michaeltryl Seniormester
03. juni 2006 - 20:48 #5
spekulere på om jeg kan gøre det sådan
sql = "DELETE * FROM tabel WHERE date < #" & Date() & "#"

så bliver eventen som er sat til idag slettet næste gang en person åbner siden fra imorgen og frem
Avatar billede venchil Nybegynder
04. juni 2006 - 11:30 #6
Hmmm... I MYSQL-manualen står der godt nok at Date() gør noget andet... Jeg er ikke 100% sikker, men prøv med Day() i stedet for Date()...

Og hvorfor er det lige du vil slette alle tidligere events? Personligt mener jeg det ikke er særlig brugervenligt at lave en sådan funktion...
Avatar billede michaeltryl Seniormester
04. juni 2006 - 19:18 #7
okay jeg prøver med day.
grunden til at jeg vil slette alle tidligere events er fordi at jeg kun skal bruge dette til at selv skrive ind om jeg er optaget eller delvis ledig på diverse dage.
andre skal ikke kunne tilføje events. det er simpelthen for at gøre det mere overskuligt for mig.
der er igen grund til at brugerne skal kunne søge efter en dato som er passeret da de ikke kan få mig ud at optræde på denne dag.
Avatar billede michaeltryl Seniormester
26. juni 2006 - 14:15 #8
lukker
Avatar billede michaeltryl Seniormester
26. juni 2006 - 14:16 #9
ups hvis du vil have point så kom med et svar
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester