Avatar billede brison Nybegynder
28. september 2009 - 19:15 Der er 7 kommentarer og
1 løsning

Indsætte dato vha. php i mysql

Har følgende fil: tilfoj.php

<html>
<head>
      <title>Opret varer</title>
</head>
<body>

<table border="1">
<tr>
<form action="tilfoj.php" method="POST">
<td>Vabe:</td><td><input type="text" name="vabe"><BR><BR></td>
</tr>
<tr>
<td>Udda:</td><td><input type="text" name="udda"><BR><BR></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="--OK--"></td>
</tr>
</table>

<?php

mysql_connect("xxxx", "xxxx", "xxxx") or die(mysql_error());
mysql_select_db("xxxx") or die(mysql_error());

$vabe = (isset($_REQUEST['vabe']) ? $_REQUEST['vabe'] : '');
$udda = (isset($_REQUEST['udda']) ? $_REQUEST['udda'] : '');

mysql_query("INSERT INTO testtabel (vare ,dato) VALUES ('$vabe', '$udda')") or die(mysql_error());

?>

</body>
</html>

Hvordan gør jeg så at jeg kan skrive datoformatet dd-mm-ÅÅÅÅ i min formular så det bliver indsat korrekt i mysql YYYY-mm-dd?

På forhånd tak.
Avatar billede coderdk Praktikant
28. september 2009 - 20:08 #1
list( $d, $m, $y ) = explode( "-", $_POST['din_dato'] );
$mysql_dato = "$y-$m-$d";

f.eks.
Avatar billede brison Nybegynder
28. september 2009 - 20:48 #2
Hvordan helt nøjagtigt skal det sættes ind i min kode?
Mit felt hvori jeg indtaster en dato i formularen, hedder udda.
Avatar billede coderdk Praktikant
28. september 2009 - 20:56 #3
I min kode, udskift din_dato med udda. Indsæt $mysql_dato i din SQL.
Avatar billede brison Nybegynder
28. september 2009 - 21:16 #4
Får bare følgende fejl:

Notice: Undefined index: udda in C:\Programmer\www\tilfoj.php on line 29

Notice: Undefined offset: 2 in C:\Programmer\www\tilfoj.php on line 29

Notice: Undefined offset: 1 in C:\Programmer\www\tilfoj.php on line 29
Column count doesn't match value count at row 1
Avatar billede coderdk Praktikant
28. september 2009 - 21:22 #5
Ja, hvis du ikke bruger POST, skal du udskifte  $_POST med $_GET eller blot $_REQUEST som du tidligere har brugt. Desuden lyder det som om din SQL er forkert ;P
Avatar billede showsource Seniormester
29. september 2009 - 08:40 #6
Brug gerne tre select's til dag, måned og år.

Ved post, brug checkdate() til at kontrollere for gyldig dato,
og derefter indsætte i din db.
http://dk.php.net/manual/en/function.checkdate.php


$datoref = $_POST["aar"]."-".$_POST["maaned"]."-".$_POST["dato"];

I stedet for tre select, så evt. tre text felter, som SKAL være et heltal.

if(false == (int)$_POST["aar"]) {
echo"fejl!";
exit;
}
Avatar billede brison Nybegynder
29. september 2009 - 19:12 #7
Hejsa...
Kan SQ ikke få det til at virke... hmm... men måske også bare mig der ikke fatter en skid ;o)

Vil i ikke være søde at sætte det ind i den kode jeg har øverst?

Kan man ikke bruge date('Y-m-d', strtotime()??

Men i så fald hvordan skal det indsættes?

Takker :o)
Avatar billede brison Nybegynder
01. oktober 2009 - 17:33 #8
Indsatte 3 inputbokse i min formular (datod, datom, datoy) og fandt så frem til denne løsning:

<?php

include("connect.php");

$vabe = (isset($_REQUEST['vabe'])  ? $_REQUEST['vabe'] : '');
$datod = (isset($_REQUEST['datod'])  ? $_REQUEST['datod'] : '');
$datom = (isset($_REQUEST['datom'])  ? $_REQUEST['datom'] : '');
$datoy = (isset($_REQUEST['datoy'])  ? $_REQUEST['datoy'] : '');

mysql_query("INSERT INTO tabel (felt1, felt2) VALUES ('$vabe', '$datoy-$datom-$datod')") or die(mysql_error());

header("Location:$_SERVER[HTTP_REFERER]");

?>
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