Avatar billede martin_shearer Nybegynder
07. marts 2008 - 20:47 Der er 20 kommentarer og
1 løsning

retunere dags dato ?

Hi

jeg har flyttet tidligere spørgsmål http://www.eksperten.dk/spm/822757 til denne kategori.

jeg har et problem. jeg har denne kode:

$query = mysql_query("SELECT dato, tid, vej, overskrift, station FROM sms_tabel WHERE dato LIKE '7-3-2008' ORDER BY tid DESC LIMIT $offset, $range");

Men jeg vil gerne have LIKE '7-3-2008' ændret. så den i stedet for 7-3-2008 selv kan regne ud at vise ting fra "idag" øverst. sådan at jeg ikke skal ændre dato hver dag.
Avatar billede Slettet bruger
07. marts 2008 - 20:53 #1
CURRENT_DATE
Avatar billede martin_shearer Nybegynder
07. marts 2008 - 20:56 #2
har forsøgt med dette

$query = mysql_query("SELECT dato, tid, vej, overskrift, station FROM sms_tabel WHERE dato >= CURRENT_DATE ORDER BY tid DESC LIMIT $offset, $range");

men det virker heller ikke
Avatar billede Slettet bruger
07. marts 2008 - 21:31 #3
hvad er typen paa dato? og hvilken version af mysql arbejder du med
Avatar billede martin_shearer Nybegynder
07. marts 2008 - 22:05 #4
Typen på dato ? her er jeg ikke lige helt med på hvad du mener.

mysql version er 5.0.15
Avatar billede Slettet bruger
07. marts 2008 - 22:10 #5
variable har typer, din dato er den af typen date?

proev evt med

DATE(dato) >= CURRENT_DATE

ellers maa du finde dig en MySQL 5 manual og kigge i (den ligger vist online)
Avatar billede showsource Seniormester
09. marts 2008 - 10:15 #6
Ja, det er sikkert fordi feltet "dato" IKKE er af typen DATE men et VARCHAR felt.
Og feltet "tid" hvilken type er det?
Avatar billede martin_shearer Nybegynder
09. marts 2008 - 11:48 #7
Prøver lige at tjekke det, så snart servage har deres side oppe at køre igen.
Avatar billede martin_shearer Nybegynder
09. marts 2008 - 13:47 #8
Feltet dato og tid er begge varchar felter. hjælper det jer noget ?
Avatar billede Slettet bruger
09. marts 2008 - 13:54 #9
Ja, det viser at du boer lave dit design om. Datoer og tid boer have relevante typer, ellers kan man ikke lave beregninger paa den paa serveren, hvilket er det du oensker.

Man kan vist godt pille datofeltet fra hinanden og saa samle det igen, men det er boevlet. Jeg vil anbefale at du lave DB designet om.
Avatar billede martin_shearer Nybegynder
09. marts 2008 - 14:07 #10
ok. men der findes ikke lige nogen måde hvor man kan gøre. så den altid viser de nyeste i databasen først. måske skal man lave en slags id felt. man så kan køre det ud fra ?
Avatar billede Slettet bruger
09. marts 2008 - 14:11 #11
jo, det er der sikkert. Men du goer atlsaa dig en meget stoerre tjeneste i det lange loeb hvis du saetter dig lidt mere ind i hvordan man smartest designer sin tabel.
Avatar billede showsource Seniormester
09. marts 2008 - 14:25 #12
$hent = mysql_query("SELECT `dato` FROM `dintabel`") or die (mysql_error());

while($ny = mysql_fetch_object($hent)) {
$aar = explode("-", trim($ny->dato));
$nytid = $aar[2]."-".$aar[1]."-".$aar[0];

mysql_query("UPDATE `tabel` SET `dato` = '".$nytid."' WHERE `dato` = '".$ny->dato."'") or die (mysql_error());

}

Så har du datoformatet som skal bruges.
Derefter kan du:

mysql_query("ALTER TABLE `tabel` CHANGE `dato` `dato` DATE NOT NULL") or die (mysql_error());

utestet!
Avatar billede martin_shearer Nybegynder
09. marts 2008 - 15:22 #13
showsource

og det vil ikke ændre ngoet i min database vel ?
Avatar billede Slettet bruger
09. marts 2008 - 15:35 #14
jo naturligvis, dette forbereder data, og her efter laver det strukturen i tabellen om til det som blev naevnt ovenfor.
Avatar billede martin_shearer Nybegynder
09. marts 2008 - 15:37 #15
Ok. det går bare ikke med den anden funktion som dette også har. Jeg tror bare vi lukker den her. så må jeg bare forsøge at lave en id funktion i stedet for. der automatisk tilføjet et id nummer til hver ny update i tabellen også bruge den.

Men smid lige et svar. for jeres forsøg. Tak for hjælpen
Avatar billede Slettet bruger
09. marts 2008 - 15:40 #16
beklager
Avatar billede showsource Seniormester
10. marts 2008 - 00:48 #17
Du kan evt. putte et nyt felt på tabellen,
mysql_query("ALTER TABLE `tabel` ADD `nydato` DATE NOT NULL") or die (mysql_error());

Og ingen point, ellers tak.
Avatar billede martin_shearer Nybegynder
10. marts 2008 - 16:12 #18
kan jeg lave noget med et nyt felt. det automatisk registrer hvad dato og klok der er kunnet en ny "data" i tabellen´?
Avatar billede showsource Seniormester
10. marts 2008 - 17:51 #19
Prøv med TIMESTAMP

mysql_query("ALTER TABLE `tabel` ADD `nydato` TIMESTAMP NOT NULL") or die (mysql_error());

b.t.w. :
http://dev.mysql.com/doc/refman/6.0/en/date-and-time-types.html
samt
http://dev.mysql.com/doc/refman/6.0/en/date-and-time-functions.html
Avatar billede martin_shearer Nybegynder
10. marts 2008 - 21:08 #20
Timestamp

vil den selv kunne finde ud af hvad dato/tid det er kommet i databasen. eller skal jeg også tilføje noget i en php fil ?
Avatar billede Slettet bruger
10. marts 2008 - 21:25 #21
Det smarteste er faktisk bare at lade vaere med at saette den! Men i stedet aendre tabellen saaledes at nydato bliver

timestamp not null default CURRENT_TIMESTAMP

(mener jeg det er)

Saa vil den bare tage det nuvaerende timestamp ved oprettelsen. Saa behoever man ikke andre noget som helt i PHP indtastningsdelen.
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