Avatar billede syngredk Nybegynder
01. februar 2006 - 13:40 Der er 4 kommentarer og
1 løsning

Datoformat i SQL-koden

Hej

Måske nogen kan hjælpe mig med nedenstående problemstilling.

Når jeg i filen news.add.php gemmer en nyhed kører den via news.run.php som ses nedenfor her. I databasen har jeg sat datoformat til at se sådan her ud '0000-00-00 00:00:00'.

Men jeg skal havde gjort så der faktisk også kommer en dato.

news.run.php ser sådan ud:

<?php

require('../access/access_config.php');


mysql_query("INSERT INTO news (ip, title, image, synopsis, text) VALUES ('".$_POST['ip']."','".$_POST['title']."','".$_POST['synopsis']."','".$_POST['text']."','".$_POST['image']."')") or die(mysql_error());
header("Location: news.list.php");

?>

Nogen som kan hjælpe ?
Avatar billede yezbarh Nybegynder
01. februar 2006 - 14:55 #1
$tid = date("d-m-Y H:i:s");
mysql_query("INSERT INTO news (DATO, ip, title, image, synopsis, text) VALUES ('".$tid."', '".$_POST['ip']."','".$_POST['title']."','".$_POST['synopsis']."','".$_POST['text']."','".$_POST['image']."')") or die(mysql_error());

skulle gerne virke
Avatar billede fixxxer Nybegynder
03. februar 2006 - 17:05 #2
yezbarh >> Hvor vil du hen med det?

Han skriver at formatet er YYYY-MM-DD HH:MM:SS (hvilket jo netop er formatet for et felt af typen DATETIME)

Jeg har svært ved at se at et format a d-m-Y H:i:s vil passe heri !-)


syngredk >> Du har 2 muligheder:
Du kan enten stole på MySQL-serveren data og klokkeslæt og benytte det indbyggede NOW() kald:

mysql_query("INSERT INTO news (ip, title, image, synopsis, text, dato) VALUES ('".$_POST['ip']."','".$_POST['title']."','".$_POST['synopsis']."','".$_POST['text']."','".$_POST['image']."', NOW())")

Eller du kan formatere en datotids-streng i det rigtige format og indsætte den:

$datotid = date('Y-m-D H:i:s');
mysql_query("INSERT INTO news (ip, title, image, synopsis, text, data) VALUES ('".$_POST['ip']."','".$_POST['title']."','".$_POST['synopsis']."','".$_POST['text']."','".$_POST['image']."', '".$datotid."')")


På sidstnævnte kan du læse mere om på http://dk2.php.net/manual/en/function.date.php
Avatar billede syngredk Nybegynder
04. februar 2006 - 21:11 #3
SQL feltet er allerede sat til: DATETIME
Avatar billede syngredk Nybegynder
04. februar 2006 - 21:17 #4
fixxer --> Dit svar det virker fint, har valgt at bruge din mulighed 1 som jeg selv mener virker bedst.

Datoen kommer dog ind i det forkerte felt nu, men der rykker jeg vel bare om på pladserne, hhv. ip, title osv.

Tak for hjælpen
Avatar billede fixxxer Nybegynder
04. februar 2006 - 22:03 #5
Jeg var nu ikke i tvivl om at feltets type var en DATETIME, da det er det eneste fornuftige felt at gemme en dato/tid i.

Den første mulighed virker kun bedst hvis serverens, der afvikler mysql-databasen, dato og klokkeslæt er synkront med den server der afvikler PHP/apache. Hvis mysql-database afvikles på samme server som PHP/apache, er det dog ligegyldigt..

En alternativ, og mere overskuelig INSERT kan se sådan ud:

INSERT INTO tabel SET felt1='noget', felt2='andet', felt3='tekst'
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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel