Avatar billede mmohr Nybegynder
16. oktober 2003 - 20:28 Der er 35 kommentarer og
1 løsning

skrive og gemme dato til database

Okay.. min bruger skal kunne oprette udgivelse med titel og tekst og dato! men datoen skal ikke defineres af php scriptet.. min bruger skal selv kunne skrive den i et tekst felt som eks: 010703. Det er ikke så vigtigt med et datotjek!

senere skal de forskellige udgivelser hentes sorteret efter dato feltet. hvordan laver jeg dette textfield til dato og hvilken type dato felt skal jeg bruge i databasen. det er mysql!
Avatar billede jakobclausen Nybegynder
16. oktober 2003 - 20:30 #1
jeg vil gøre det på den måde at brugeren indtaster 16-10-2003 i et almindeligt tekstfelt.

Dette deler du så op, så det istedet for kommer til at hedde: 2003-10-16, som du så lægger ind i databasen, hvor du har et felt med typen date.
Avatar billede mmohr Nybegynder
16. oktober 2003 - 20:32 #2
jeg er ikke php haj, så jeg har brug for et rimlig detaljeret eksempel!
Avatar billede jakobclausen Nybegynder
16. oktober 2003 - 20:32 #3
HVordan du deler datoen op kan du læse lidt om her:
http://dk2.php.net/manual/en/function.substr.php
Avatar billede jakobclausen Nybegynder
16. oktober 2003 - 20:37 #4
(1) Lav en form med et tekst felt der f.eks. hedder dato

(2) Hent datoen ind på en anden side og del den op og sæt den sammen:

$dag = substr($_POST[dato],0,2);
$måned = substr($_POST[dato],3,2);
$år = substr($_POST[dato],6,10);
$dato = $dag."-".$måned."-".$year;

(3) Dette lægger du så ind i databasen med:

mysql_query("INSERT INTO tabel (dato) VALUES ($dato)");

Hvis du ikke bruger method=post i din form, men istedet for GET skal du skrive $_Get[ ]
Avatar billede mmohr Nybegynder
16. oktober 2003 - 20:40 #5
jeg bruger post.. det prøver jeg lige...
Avatar billede mmohr Nybegynder
16. oktober 2003 - 20:51 #6
HER ER MIN FORM:
<form name="post release" method="post" action="opretrelease_save.php">

<span class="bluetext"><strong>RELEASE DATO:</strong></span><br>
<input name="dato" type="text" class="box2" id="titel" size="30" maxlength="40">

<input name="Submit" type="submit" class="box2" value="GEM RELEASE!">
</form>

OG HER ER SCRIPTET PÅ MIN MODTAGERSIDE!:
<?php
$db = mysql_connect($db_host,$db_user,$db_pass);
mysql_select_db ($db_name) or die ("Kan ikke forbinde til databasen");

// Indsæt RELEASE!

$query = "INSERT INTO mg_webadmin_releases(titel, label, dato)
VALUES('$titel', '$label', '$dato')";
mysql_query($query);

mysql_close($db);
?>

Kan du ikke hvise mig hvordan det skal sættes ind! Det ville være en stor hjælp.
Avatar billede jakobclausen Nybegynder
16. oktober 2003 - 21:02 #7
Ikke helt med på hvad du mener?
Avatar billede jakobclausen Nybegynder
16. oktober 2003 - 21:05 #8
Det eneste du skal rette er egentlig kun i din opretrelease_save.php, hvor der skal stå:

<?php

// Laver datoen om til yyyy-mm-dd som bruges i date typen i databasen
$dag = substr($_POST[dato],0,2);
$måned = substr($_POST[dato],3,2);
$år = substr($_POST[dato],6,10);
$dato = $dag."-".$måned."-".$year;

// Opretter forbindelse til database
$db = mysql_connect($db_host,$db_user,$db_pass);
mysql_select_db ($db_name) or die ("Kan ikke forbinde til databasen");

// Indsæt RELEASE!

$query = "INSERT INTO mg_webadmin_releases(titel, label, dato)
VALUES('$titel', '$label', '$dato')";
mysql_query($query);

mysql_close($db);
Avatar billede mmohr Nybegynder
16. oktober 2003 - 21:06 #9
hvordan vil du dele £dato op????
Avatar billede mmohr Nybegynder
16. oktober 2003 - 21:06 #10
ups $dato
Avatar billede mmohr Nybegynder
16. oktober 2003 - 21:13 #11
okay.. fik postet lidt sent der!!! hvilken type dato felt skal jeg bruge i min mysql database
Avatar billede jakobclausen Nybegynder
16. oktober 2003 - 21:20 #12
date
Avatar billede mmohr Nybegynder
16. oktober 2003 - 22:09 #13
hmmm... den gemmer de andre variabler titel og label men dato bliver til 00-00-0000?
Avatar billede jakobclausen Nybegynder
16. oktober 2003 - 22:13 #14
prøv evt at sætte linien:

echo $dato;

ind lige før //indsæt release, hvad sker der?
Avatar billede mmohr Nybegynder
16. oktober 2003 - 22:13 #15
har rettet:
<input name="dato" type="text" class="box2" id="titel" size="30" maxlength="40">
Til:
<input name="dato" type="text" class="box2" id="dato" size="30" maxlength="40">

men det ændrer ikke noget
Avatar billede mmohr Nybegynder
16. oktober 2003 - 22:16 #16
den echo'er: 11-12-
Avatar billede jakobclausen Nybegynder
16. oktober 2003 - 22:18 #17
Hvad har du indtastet i dit dato felt?
Avatar billede mmohr Nybegynder
16. oktober 2003 - 22:20 #18
11-12-2003
Avatar billede jakobclausen Nybegynder
16. oktober 2003 - 22:21 #19
hehe undskyld min fejl.

Det eneste sted har jeg brug år og det andet year. Så i linien lige inden //opretter forbindelse til database skal der stå:

$dato = $dag."-".$måned."-".$år;
Avatar billede mmohr Nybegynder
16. oktober 2003 - 22:25 #20
nå ja... men nu echo'er den godt nok det rigtige nemlige 20-10-2003, men i databasen står der 2004-07-20????
Avatar billede jakobclausen Nybegynder
16. oktober 2003 - 22:28 #21
Det lyder godt nok meget underligt synes jeg, det burde virke!
Avatar billede mmohr Nybegynder
16. oktober 2003 - 22:33 #22
okay mystisk... nu har jeg lige gemt en til med år 2002 som er blevet til 2005?? har jeg instillet date-feltet forkert i databasen?
Avatar billede jakobclausen Nybegynder
16. oktober 2003 - 22:37 #23
Nej det kan jeg ikek lige helt se hvordan du skulle kunne gøre. Og det udskriver stadig echo rigtig ?
Avatar billede mmohr Nybegynder
16. oktober 2003 - 22:38 #24
ja echo er rigtigt! men databasen er i kuk
Avatar billede jakobclausen Nybegynder
16. oktober 2003 - 22:40 #25
Ret denne linie: $dato = $dag."-".$måned."-".$year;

til: $dato = $år."-".$måned."-".$dag;
Avatar billede jakobclausen Nybegynder
16. oktober 2003 - 22:41 #26
Hvis du indtaster: 16-10-2003, skal det rigtig nok stå 2003-10-16 i databasen. Det er nemlig i det format at databasen kan håndtere en dato.
Avatar billede mmohr Nybegynder
16. oktober 2003 - 22:43 #27
ja, men så er det bare lidt mærkeligt at den skriver 2004-10-16! det er da totalt ulogisk
Avatar billede jakobclausen Nybegynder
16. oktober 2003 - 22:46 #28
For at din database kan håndtere datoen er den nødt til at hedde år-måned-år

Når du så skal have skrevet dato ud igen, kan du egentlig gøre det samme, altså sætte den sammen, næsten omvendt af hvad du gjorde i indsættelsen.
Avatar billede mmohr Nybegynder
16. oktober 2003 - 22:49 #29
okay.. tjek det her. 10-04-2003 bliver til 2010-04-20.. det ser da ud til at den bare bytter lidt om på tallene.
Avatar billede mmohr Nybegynder
16. oktober 2003 - 22:50 #30
mener du ikke år-måned-dag
Avatar billede jakobclausen Nybegynder
16. oktober 2003 - 22:57 #31
Jo det mener jeg selvfølgelig.

Har lavet en lille test, hvor jeg har lagt datoen 10-04-2003 ind og det giver dette: http://www.bokaj.dk/eksperten/414917.php

Og lægger den ikke det ind i databasen kan jeg desværre ikke hjælpe dig, for det skulle den meget gerne!
Avatar billede mmohr Nybegynder
16. oktober 2003 - 23:05 #32
hey.. du har jo faktisk løst problemet i 22:40:56

jeg overså bare din løsning.. nu virker det.. puha! tusind tak for hjælpen jacob
Avatar billede jakobclausen Nybegynder
16. oktober 2003 - 23:07 #33
Kunne heller ikke helt forstå. Jeg takker for point!
Avatar billede mmohr Nybegynder
16. oktober 2003 - 23:09 #34
nå jo for resten.. hvordan laver jag så den modsatte funtion når jeg skal udskrive datoen igen?
Avatar billede jakobclausen Nybegynder
16. oktober 2003 - 23:13 #35
Du laver en forespørgsel der henter indholdet ud:

$result = mysql_query("SELECT * FROM mg_webadmin_releases");

while($row = mysql_fetch_array)
{
    $dato = $row[dato];

// Sætter datoen sammen
    $dag = substr($dato,8,2);
    $måned = substr($dato,5,2);
    $år = substr($dato,0,4);
    $dato = $dag."-".$måned."-".$year;

//udskriver dato
    echo $dato;
}
Avatar billede mmohr Nybegynder
16. oktober 2003 - 23:49 #36
fantastisk... tak
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