Avatar billede NielsErikP Mester
06. juni 2012 - 23:32 Der er 22 kommentarer og
2 løsninger

Datatypen DATE.?

Hej...

Sidder og roder med MySql uden den vildt store erfaring.
Jeg vil vide, hvorledes datatypen DATE fungere, jeg har en Query i en php fil, der udskriver ugedag,dato, tid og tekst...
Det skal fungerer efter devisen, at jeg gennem PhpMyAdmin manuelt via SQl indsætter ugedag, tid og tekst.. Så er det jeg vil høre , hvordan DATE for dato kan komme til så automatisk at indsætte dato'en i dato.

Kan dette lade sig gøre??

PÅ forhånd tak.
Avatar billede tobrukDk Novice
06. juni 2012 - 23:42 #1
Kan du bruge noget her fra måske?

http://www.eksperten.dk/spm/963774#reply_7949179
Avatar billede NielsErikP Mester
07. juni 2012 - 00:09 #2
Hej..

Jesper det jeg ville er at bruge DATE til dato..før var dato en VARCHAR(16), hvor jeg så via INSERT INTO nyheder(ugedag,dato,tid,tekst) VALUES ("torsdag","7/6-2012","00:10:10","Det var engang en tråd....")...

Ideen var at når jeg indsatte ugedag,tekst igennem SQL Query i PhpMyAdmin.. At det så automatisk indsatte dato,tid...

Jeg ved DATE har formatet YYYY-MM-DD... min mening var så at lave en lille php funktion der skeler det op og skriver det i formatet DD-MM-YYYY... og udskriver det, men jeg skal have DATE til at sætte YYYY-MM-DD ind i dato automatisk..

Ved ikke om du kan følge tankegangen??
Avatar billede tobrukDk Novice
07. juni 2012 - 00:13 #3
Nej jeg ikke ikke følge helt tankegangen.,


Men er det sådan at den vil have den skal ligge dagen ind og dato og tid ind i databasen i hver sin "box" eller hvad man skal kalde det?

ellers prøve lige at kig på nogle af dem her ;

http://dk.php.net/strftime

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp


http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format
Avatar billede NielsErikP Mester
07. juni 2012 - 00:29 #4
Hej...

"Men er det sådan at den vil have den skal ligge dagen ind og dato og tid ind i databasen i hver sin "box" eller hvad man skal kalde det?


Nemlig.. når jeg sætter tekst,ugedag ind manuelt gennem phpMyAdmin.
Avatar billede tobrukDk Novice
07. juni 2012 - 12:40 #5
hmm der er mange måde du kan gøre det på men hvilken måde vil du gerne selv gør det på ?
Avatar billede NielsErikP Mester
07. juni 2012 - 13:14 #6
Hej...

Jesper det tror jeg ikke jeg kan forklare dig, hvis du ikke forstår det der står i #0, #2, #4 ... Så må jeg på jagt på internettet, hvis der ikke dukker en anden op.
Avatar billede tobrukDk Novice
07. juni 2012 - 16:01 #7
har du prøve noget selv NielsErikP?

har du bygget det op i mysql eller mysqli? eller hvad?
Avatar billede tobrukDk Novice
07. juni 2012 - 16:09 #8
jeg ved kun hvordan man gøre det med dato, hvis jeg også kun det med dagen(torsdag) og tid, så vil jeg super gerne hjælpe dig ellers gå ind på http://stackoverflow.com/ hvis du har spørgs mål, den er meget god til at svar på spørgsmål hvis du ikke få et her.. :D
Avatar billede NielsErikP Mester
07. juni 2012 - 21:25 #9
Hej..

Det jeg har er en div..til forsiden.. hvor jeg skal vise "Nyheder+tiltag" på min hjemmeside.
Inde i den div vises indholdet med dette :



<div id="nyt">
                <?php 
           
                    $foresp = mysql_query("SELECT id, ugedag, dato, tid, tekst FROM nyheder ORDER BY id DESC") or die(mysql_error()); //Data hentes i tabellen bog
                                           
                    while($data = mysql_fetch_array($foresp)){
                    ?>
                    <div id="nyt_format">
                    <?php echo $data["ugedag"]; 
                          echo " d." .$data["dato"];
                          echo " kl. " .$data["tid"]; 
                    ?>
                    </div>
                    <hr><br>
                    <?php echo nl2br($data["tekst"]); //nl2br = newline oversættes til html breaktag. ?> 
                    <br>
                    <hr>
                <?php
                }
                ?>
            </div>



Og så vil jeg indsætte det manuelt igennem PhpMyAdmin :

1: insert

2: struktur
I link 1 ses at dato er sat til "????" i query'en... Det er den jeg skal have sat ind automatisk, når jeg gør det på denne måde.

I link 2 ses at dato er af datatypen DATE.
Avatar billede NielsErikP Mester
07. juni 2012 - 21:28 #10
Hej...

Link 1 : insert
Avatar billede showsource Seniormester
07. juni 2012 - 22:12 #11
Når du arbejder med tid i mysql, kan det kun anbefales at bruge standard sql formater.
D.v.s. i dit tilfælde skal du bruge et datetime felt ved insert, YYYY-MM-DD-HH-MM-SS
Og ikke et date felt.

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html
Avatar billede NielsErikP Mester
07. juni 2012 - 22:34 #12
Hej...

#11: Jamen sætter jeg så dato til DATETIME, sætter den så automatisk det ind i kolonnen,når jeg sætter tekst ind i tekst kolonnen, sådan at den bare kan udskrives fra php filen.
Avatar billede NielsErikP Mester
07. juni 2012 - 23:30 #13
Hej...

Jeg har prøvet følgende :



INSERT INTO nyheder(ugedag,dato,tid,tekst) VALUES ("torsdag","DATE()","23:24:50","Dette er en prøve tekst..! Dette er en prøve tekst..! Dette er en prøve tekst..! Dette er en prøve tekst..! Dette er en prøve tekst..! Dette er en prøve tekst..! Dette er en prøve tekst..! Dette er en prøve tekst..! Dette er en prøve tekst..! Dette er en prøve tekst..! Dette er en prøve tekst..!);



Men udskriver dette :

torsdag d.0000-00-00 kl. 23:24:50 
Avatar billede showsource Seniormester
08. juni 2012 - 05:17 #14
Det er nok CURRENT_DATE() du skal bruge.
Men hvorfor ikke bruge datetime ?

En sql til at oprette en tabel kunne være:

CREATE TABLE datoer (
  id int(11) NOT NULL AUTO_INCREMENT,
  dato datetime NOT NULL,
  PRIMARY KEY (id)
)

Hvis du har ovenstående tabel i din db:

<?php

$nytrow_sql = "INSERT INTO datoer (id,dato) VALUES (NULL,NOW())";

$select_sql = "SELECT DATE_FORMAT(dato, '%W d. %d %M kl. %H %i') FROM datoer";


$conn = mysql_connect("localhost", "root", "stefd") or die (mysql_error());

mysql_select_db("fuckskat", $conn) or die (mysql_error());

//INSERT row
$nytrow = mysql_query($nytrow_sql) or die ("Ind ".mysql_error());

//Brug dansk tid
mysql_query("SET lc_time_names='da_DK'");

//SELECT row
$select = mysql_query($select_sql) or die ("Hent ".mysql_error());

// vis resultat
echo mysql_result($select,0);

?>
Avatar billede showsource Seniormester
08. juni 2012 - 05:19 #15
og hov, du skal ikke ta' dig af mine pass m.m. :O)
Det kører kun på localhost, men ja, jeg har domainet fuckskat.dk
Og burde se at blive færdig med siden!
Avatar billede NielsErikP Mester
10. juni 2012 - 13:37 #16
Hej...

Løsnigen blev min php fil i #9....
Og en query : INSERT INTO nyheder(ugedag,dato,tid,tekst) VALUES("Søndag",CURDATE(),CURTIME(),"Så lykkes det efter hensigten"); indsat under fanen SQL i PhpMyADmin ...

Jeg syntes tobrukdk og showsource begge deler point.. men da eksperten.dk ikke skal sluge det sidste point smider jeg også svar.

Og vil i være venlig også at gøre det.
Avatar billede NielsErikP Mester
10. juni 2012 - 13:38 #17
.
Avatar billede showsource Seniormester
10. juni 2012 - 19:43 #18
Tro mig, du vil være bedre tjent med et felt med dato og tid !!!
Avatar billede NielsErikP Mester
10. juni 2012 - 21:28 #19
Hej...

Ved ikke om jeg er sprog spasser eller lever i en fantasi verden.
Men det skal sættes ind via PhpMyAdmin... Ellers virker det ikke efter hensigten. Hvis det ikke bliver det men tekst, dato, tid bliver sat ind via en php fil. Skal jeg uploade en FTP uploade dokumentet hvergang der sættes ny tekst ind.

Se her hvad det er der skal laves :
    Nyheds Box
Avatar billede aeroone Nybegynder
11. juni 2012 - 19:50 #20
Brug time() som ID til dine svar, i time har du alle informationer, og du kan formatere dem som du har lyst.

F.eks.

echo date("d/m-Y H:i:s", time());

så skal du ikke bruge db plads til uge, dag, tid, osv, du har det hele i time()
Avatar billede aeroone Nybegynder
11. juni 2012 - 19:53 #21
Hopla :-)

Du skal da ha' et CMS system, jeg har et, som jeg har lavet for flere år siden, det kan du da godt prøve.
Avatar billede NielsErikP Mester
11. juni 2012 - 20:54 #22
Hej...

#20: Ja.. selvfølgelig.. ved heller ikke, hvad jeg tænker på, Lad php udskrive, så er der kun brug for tekst i DB'en... men hmm... Er det ikke lidt vildt at oprette en DB.. for 1 kolonne??


#21:  "Hva satan laver den landstræner udenfor sit felt" ;-)
Eeeeej du.. her laver vi det selv.
Avatar billede tobrukDk Novice
11. juni 2012 - 21:11 #23
bare give mig 5 point jeg gider ikke have et ulige tal.. :)
Avatar billede NielsErikP Mester
11. juni 2012 - 21:17 #24
Hej...

Tak for hjælpen tobtukdk og showsource :-)
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
Computerworld tilbyder specialiserede kurser i database-management

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