Autor | Zpráva | ||
---|---|---|---|
Peto Profil * |
Ahoj, chci přes php vložit do databáze libovolné datum, ale stále mi to v databázi piše 0000-00-00, ale pokud použiji fci date(), tak je to vše v pohodě.
příklad: $datum = $post[datum]; $today = date( "Y-n-j"); $sql = "INSERT INTO test SET zvolene ='$datum', dnesni='$today';" Výpis z databáze pak vyjde takto: 0000-00-00 a 2010-06-29 Kde může být zakopaný čokl??? |
||
Taps Profil |
#2 · Zasláno: 29. 6. 2010, 21:53:39
Peto:
zkus $datum = $_POST['datum']; |
||
Peto Profil * |
#3 · Zasláno: 30. 6. 2010, 19:49:16
Tak ani tím to není :-(
|
||
xmark Profil |
#4 · Zasláno: 30. 6. 2010, 19:57:46
Ukaž co máš v tom $sql.
|
||
Peto Profil * |
#5 · Zasláno: 30. 6. 2010, 21:10:33
<?php function dotaz($sql) { $dotaz = mysql_query($sql) or die("Chyba databaze. Zkuste prosim akci opakovat pozdeji."); return $dotaz; } $userid = $_SESSION['id'] ; $jname = $_SESSION['jmeno']; $lastn = $_SESSION['prijmeni'] ; $datum = $_POST['datum']; if(isset($_POST['ok'])){ dotaz("INSERT INTO zpravy SET userid ='$userid', napsal= '$jname $lastn', cas ='$datum';"); header("Location: ../private/prispevky.php"); } echo" <form action='/private/prispevky.php?akce=pridat' method='post' enctype='multipart/form-data'> <input class='inputText' type='text' name='datum' ><br> <input class='inputText' type='submit' name='ok' value='Vložit' /> </form>"; ?>" Výsledek je takový, že se zapíše vše ale datum je v databázi 0000-00-00 i když to zadám ve správnem tvaru |
||
Tori Profil |
#6 · Zasláno: 2. 7. 2010, 08:44:12 · Upravil/a: Tori
Peto:
Co třeba $datum = date("Y-m-d", strtotime($_POST['datum'])); - uživatel pak může zadat 2010-06-30, 30.6.2010, 30 Jun 2010 atd. (viz přehled podporovaných formátů). Pokud ten formulář budou vyplňovat různí uživatelé, šlo by použít i nějakou validaci, v jakém tvaru to datum můžou zadat. Třeba $userid = $_SESSION['id'] ; $jname = $_SESSION['jmeno']; $lastn = $_SESSION['prijmeni'] ; if (isset($_POST['ok'])) { $timestamp = strtotime($_POST['datum']); // vrací buď timestamp, nebo FALSE if ($timestamp === false) { // = datum není v žádném standardním formátu. Formulář se zobrazí znovu, // v poli 'datum' bude předvyplněná ta chybná hodnota. $chybovaHlaska = '<b>Zadali jste nečitelné datum. Napište ho znovu podle vzoru d.m.r.</b>'; } else { $datum = date("Y-m-d", $timestamp); dotaz("INSERT INTO zpravy SET userid ='$userid', napsal= '$jname $lastn', cas ='$datum';"); header("Location: ../private/prispevky.php"); } } echo" $chybovaHlaska <form action='/private/prispevky.php?akce=pridat' method='post' enctype='multipart/form-data'> <input class='inputText' type='text' name='datum' value='{$_POST['datum']}' /><br> <input class='inputText' type='submit' name='ok' value='Vložit' /> </form>"; |
||
Časová prodleva: 15 let
|
0