Slettet bruger
17. juni 2005 - 19:41
Der er
10 kommentarer og 1 løsning
konvertere og indsætte dato i mysql
Hej Jeg er TOTAL nybegynder og er ved at skrive et budget-system i PHP/MySQL. Jeg har en form med et datofelt og kan godt smide en dato i formatet YYYY-MM-DD ind i min db: $query = "INSERT INTO expenses (date) VALUES ('$_POST[date]')"; Men jeg vil jo gerne kunne indtaste datoen i et humant format (DD-MM-YYYY) og har som sådan også fundet koden, der kan konvertere det: <?php $sDate = '01-03-2004'; $aDate = explode('-', $sDate); //creates an array: array(0=>"01", 1=>"03", 2 => "2004") $uDate = mktime(0,0,0,$sDate[1], $sDate[0], $sDate[2]); //mktime(hour, minute, secs, month, day, year) ?> Problemet er bare at jeg ikke kan finde ud af at bruge den stump kode jeg har til konvertering, så den smider det ind i min db. Jeg er altså ret så ny til php/mysql ;O) Takker
Annonceindlæg fra itavis
<?php $sDate = $_POST[date]; $aDate = explode('-', $sDate); //creates an array: array(0=>"01", 1=>"03", 2 => "2004") $uDate = mktime(0, 0, 0, $sDate[1], $sDate[0], $sDate[2]); //mktime(hour, minute, secs, month, day, year) $query = "INSERT INTO expenses (date) VALUES ('$uDate')"; ?>
Slettet bruger
17. juni 2005 - 22:43
#2
Mange tak for det nielle. Det ser dog bare ikke ud til at virke. Jeg får godt nok ingen fejl, men der kommer ikke noget ind i min db... Mystisk...
Prøv - som debug - at udskrive din SQL før at du udføre den: <?php $sDate = $_POST[date]; $aDate = explode('-', $sDate); //creates an array: array(0=>"01", 1=>"03", 2 => "2004") $uDate = mktime(0, 0, 0, $sDate[1], $sDate[0], $sDate[2]); //mktime(hour, minute, secs, month, day, year) $query = "INSERT INTO expenses (date) VALUES ('$uDate')"; echo "DEBUG: " + $query + "<br>"; Som regel skyldes denne slags fejl at SQL'en ser anderledes ud end man troede. ?>
Slettet bruger
17. juni 2005 - 23:34
#4
debug viser bare 0 Underligt..
Slettet bruger
18. juni 2005 - 18:03
#6
jeps..
Slettet bruger
18. juni 2005 - 18:03
#7
Altså den udskriver faktisk bare 0 på siden...
Jeg foreslog at du skulle skrive: echo "DEBUG: " + $query + "<br>"; Altså burde den da også skrive "DEBUG: " foran o'et. Hvis den ikke gør det så er det nok en udskrift som stammer et helt andet sted fra.
DOH: Brug punktum i stedet for +: echo "DEBUG: " . $query . "<br>";
18. juni 2005 - 18:45
#10
I øvrigt bør der altid være pinger rundt om tekststrenge. Ret min: $sDate = $_POST[date]; - til: $sDate = $_POST["date"];
Slettet bruger
23. juni 2005 - 15:08
#11
Her er løsningen (fik lige hjælp fra en ven) $sDate = $_POST["date"]; $aDate = explode('-', $sDate); //creates an array: array(0=>"01", 1=>"03", 2 => "2004") $query = "INSERT INTO expenses (date, place, amount) VALUES ('".$aDate[2]."-".$aDate[1]."-".$aDate[0]."','$_POST[place]','$_POST[amount]')"; mysql_query($query) or die('Fejl! Indsættelse mislykkedes : ' . mysql_error()); mysql_close();
Vi tilbyder markedets bedste kurser inden for webudvikling