Gå til innhold

Dato fra bruker form. Får ikke input i DB. Why?


Anbefalte innlegg

har forsøkt å få til at brukeren kan taste inn dato på rett format

ÅÅÅÅ-MM-DD og at dette blir satt sammen slik at det blir satt riktig inn i Date() formatet i tabellen.

 

Har 2 datoer der en fradato og tildato. Planlegger å sortere etter første datoen her da det skal brukes til å holde oversikt over program og aktiviteter. Må nesten sorteres på FraDato da slik at en kan legge til program i en ikke kronologisk rekkefølge, men at visningen blir det.

 

Resultatet fra input blir bare 000-00-00 på begge Date feltene

 

Ser slik ut nå (langt) og jeg vet ikke hva som er feil:


function publiserprogram()

{

include ("../db.php");

?>

<html>

<head>

<title>Publiser program</title>

<link rel="STYLESHEET" type="text/css" href="../index.css">

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body>



<p class="overskrift">

Fyll inn feltene og trykk nederste knapp og du kan legge til et program</p><br>

<p class="normal">

Fra dato må du fylle ut, mens til dato kan stå åpen.<br>

Dersom du angrer på noe du har fyllt inn kan du endre dette med å gå til forrige<br>

side og benytte knappen Endreprogram.

<br>

Avbryt ved å velge knappen adminstart i bunn av siden.

</p>

<form action="<? $PHP_SELF ?>" method="POST">

<table class="hovedvindu" cellspacing="2" cellpadding="2" border="0">

<tr>

   <td class="menybred"><p class="overskrift">Overskrift:</p><br>

   <td colspan="2"><input type="text" name="overskrift" size="35" maxlength="35" VALUE=""></td>

</tr>

<tr>

   <td class="menybred">Datoer</td>

   <td> <p class="overskrift"> Fra dato</p><p class="vanlig">(ÅÅÅÅ-MM-DD)</p>

<input type="text" size="4" maxlength=4 name="year">-

<input type="text" size="2" maxlength=2 name="month">-

<input type="text" size="2" maxlength=2 name="day"></td>

   <td> <p class="overskrift">Til dato</p><p class="vanlig">(ÅÅÅÅ-MM-DD)</p>

<input type="text" size="4" maxlength=4 name="year1">-

<input type="text" size="2" maxlength=2 name="month1">-

<input type="text" size="2" maxlength=2 name="day1"></td>

</tr>

<tr>

   <td class="menybred"> <p class="overskrift">Innhold:</p></td>

   <td colspan="2"><textarea rows="20" cols="45" name="teksten"></textarea></td>

</tr>

<tr>

<td class="menybred">Bekreft:</td>

   <td> Nullstill skjema: &<input type="reset" value="Slett skjema"></td>

   <td>Publiser:&<input type="submit" value="Publiserprogram" name="action"></td>

</tr>

</table>

</form>

</form

><FORM ACTION="<?php $PHP_SELF ?>" METHOD="POST">

<INPUT TYPE="submit" NAME="action" VALUE="Adminstart">

</form>

</body>

</html>

<?

$fradate = $_POST["year"]."-".$_POST["month"]."-".$_POST["date"];

$tildato = $_POST["year1"]."-".$_POST["month1"]."-".$_POST["date1"];



}

if($_POST["action"] == "Publiserprogram")

{

$sql = "INSERT INTO Programmet (Overskrift, FraDato, TilDato, Tekst) VALUES ('$overskrift','$fradato','$tildato','$teksten')";

 $result = mysql_query($sql);

echo "Programminnrykket er nå lagt til.n";

}

Evt en annen og enkel måte å få dato fra bruker?

Må være mulig å sortere på denne fra datoen

Lenke til kommentar
Videoannonse
Annonse


$fradate = $_POST["year"]."-".$_POST["month"]."-".$_POST["date"]; 



OG:



'$fradato'

 

Fiks den kanskje. :)


$result = mysql_query($sql); 

Den ville jeg nok ha endret til:


mysql_query($sql) or die ("Feil, venligst gjør bah");

Så ser du i det minste om det er spørringen som er problemet.

Du bruker jo ikke $result variablen uansett så den er vell litt overflødig, med mindre du skal bruke den senere.

Men endre variabel navnet til det korekte så funker det nok.

Lenke til kommentar

I skjemaet har du brukt navnet "day" og "day1", i resten av koden har du brukt "date" og "date1". Ikke 100% sikker på om det vil gjelde i dette tilfellet, men MySQL har en tendens til å nulle ut datoer den ikke liker fullstendig.

 

MVH Audun

Lenke til kommentar

Tips: Bruk echo $variabelnavn på strategiske steder i koden, og se hva du får ut. Eventuelt kan du også slenge inn phpinfo() et sted i koden og scrolle ned til oversikten over de definerte variablene.

 

Da man først begynte med programmering av datamaskiner (hullkort) hadde man visstnok ingen anelse om at mesteparten av tiden skulle gå med på å rette feil i gammel kode, og ikke å skrive ny kode.

 

MVH Audun

Lenke til kommentar

Er nok skjema/variable navn som er problemet.

Som Audunr sa, bruk echo når du feilsøker, echo ut alle variabler, se at de stemmer.

$fradato og $tildato vil nå være -xx-xx noe som MySQL vell ikke er helt med på.

 

Bruk echo, og "or die" på mysql kommandoer. Eventuelt lag en if som sjekker om mysql kommandoer blir utført korrekt.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...