Avatar billede bas Forsker
03. februar 2004 - 23:49 Der er 8 kommentarer og
1 løsning

Hvordan rettes datoen ?

Hej

Jeg har et php script, der efter en forespørgsel
bl.a. viser en dato.
Problemet er bare, at det ikke er den rigtige dato.
Hvordan retter jeg det ?

Forespørglsen ser således ud:

$foresp = mysql_query("SELECT navn, email, DATE_FORMAT(dato, '%d.%m.%Y') AS dato, besked FROM bog ORDER BY nr DESC");

Dato feltet i tabellen er timestamp.

Resultatet af forespørgslen viser 20.02.2003,
men siden er først oprettet idag 03.02.2004.

Skal der ændres noget i dato feltet, eller er det forespørgslen den er gal med ?

På forhånd tak.

Hilsen

Martin
Avatar billede schaefner Juniormester
03. februar 2004 - 23:58 #1
Hvordan ser din dato i databasen ud?
Avatar billede bas Forsker
04. februar 2004 - 00:11 #2
Det er en TIMESTAMP

Jeg fandt fejlen, jeg havde brugt

$dato_array = getdate();
$dato = $dato_array["mday"]. "/".$dato_array["mon"]. "-".$dato_array["year"];

men TIMESTAMP sætter jo selv datoen.

jeg er dog ikke klar over, hvorfor getdate();
skriver en dato, der hedder 20.02.2003.

Kan du forklare mig det ?

/Martin
Avatar billede Slettet bruger
04. februar 2004 - 01:08 #3
Er det sådan du laver datoen, der bliver puttet i MySQL, for så er det ikke så underligt, at det går galt.

Der står jo 03/02-2004, og det vil mysql forstå som 2003, 2. måned, 20. dag, kl 4 og TIMESTAMP sætter kun datoen selv, hvis du ikke manuelt giver den en værdi.
Avatar billede bas Forsker
04. februar 2004 - 11:53 #4
Nu har jeg det sådan:

TIMESTAMP i feltet dato.

$foresp = mysql_query("SELECT navn, email, DATE_FORMAT(dato, '%d.%m.%Y') AS dato, besked FROM bog ORDER BY nr DESC");

/Martin
Avatar billede bas Forsker
04. februar 2004 - 13:58 #5
Jeg har to filer.

Den ene er en formular, hvor man kan indtaste navn, email og besked,
den anden viser det indtastede vha. forespørgslen


$foresp = mysql_query("SELECT navn, email, DATE_FORMAT(dato, '%d.%m.%Y') AS dato, besked FROM bog ORDER BY nr DESC");

Som det er nu vises datoen, selvom der ikke er indtastet oplysninger i formularen.
Jeg er klar over, at det er fordi dato feltet indeholder oplysninger om datoen,
men er der mulighed for at sætte en betindelse for at datoen kun skal vises, hvis der
er indtastet noget i formularen ?

/Martin
Avatar billede Slettet bruger
04. februar 2004 - 14:48 #6
Vis mere kode. Så er det lettere at forstå, hvad du prøver, og lettere at gennemskue, hvad der skal rettes til.
Avatar billede bas Forsker
04. februar 2004 - 14:59 #7
Ok, her er de to filer.


En fil med en formular:

http://www.detour.dk/blog_ind.phps

En fil, der viser indholdet i gæstebogen:

http://www.detour.dk/vis_blog.phps
Avatar billede Slettet bruger
04. februar 2004 - 23:41 #8
Ret skriv-blokken til nedenstående, så bliver der kun skrevet til databasen, hvis alle felter inderholder noget.

if(isset($_POST['skriv'])) {

  $besked = isset($_POST['besked'])?trim($_POST['besked']):'';
  $email = isset($_POST['email'])?trim($_POST['email']):'';
  $navn = isset($_POST['navn'])?trim($_POST['navn']):'';

  if (empty($besked) || empty($email) || empty($navn)){
    // Der manglede indtastning
  } else {
    mysql_query("INSERT INTO bog(navn, email, besked) VALUES('$navn' , '$email', '$besked')");
  }
}
Avatar billede bas Forsker
05. februar 2004 - 14:55 #9
Til sandbox

Det ser ud til at virke fint.
Det er nok også den pæneste/smarteste
måde at gøre det på.

Mange tak for det!

Hilsen Martin
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

IT-JOB

Roskilde Universitet

AV Tekniker

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger sektionschef til Systemafdelingen i Hvidovre

Everllence

R&D Data Scientist

BEC Financial Technologies

Development Manager for Document Lifecycle