Palme Skrevet 17. september 2008 Del Skrevet 17. september 2008 Hei, Jeg driver å lager et lite annonse-publiseringsverktøy og trenger litt hjelp. Jeg har laget et form som skal mate all info inn i en database, og det jeg ikke er helt sikker på hvordan jeg skal få til er publiseringsdato (dato annonsen skal gjelde fra) og datoen den publiserte annonsen skal utgå. Det jeg har gjort: <?php function lagListe($navn, $start, $stopp, $format, $steg=1) { $akkuratnaa = date($format); echo "\n\t<select name='$navn'>\n"; for ($i=$start; $i<=$stopp; $i+=$steg) { if ($i<10) $i = "0" . $i; $element = "\t\t<option value='$i'"; if($i==$akkuratnaa) $element .= " SELECTED"; $element .= ">$i</option>\n"; echo $element; } echo "\t</select>\n"; } ?> <tr><td>Annonsen skal publiseres</td> <td> <?php echo lagListe("dato", 1, 31, "d"); echo lagListe("mnd", 1, 12, "m"); $aarstall = date("Y"); echo lagListe ("aar", $aarstall, $aarstall+5, "Y"); ?> </td> </tr> <tr> <td>Annonsen skal utløpe dato</td> <td> <?php echo lagListe("dato", 1, 31, "d"); echo lagListe("mnd", 1, 12, "m"); $aarstall = date("Y"); echo lagListe ("aar", $aarstall, $aarstall+5, "Y"); ?> </td> Laget altså en liten dato-liste (som viser dags dato) Spørsmålet er da, hvordan skal jeg få dette inn i MySQL-databasen min? Koden min sålangt: Form: <?php function lagListe($navn, $start, $stopp, $format, $steg=1) { $akkuratnaa = date($format); echo "\n\t<select name='$navn'>\n"; for ($i=$start; $i<=$stopp; $i+=$steg) { if ($i<10) $i = "0" . $i; $element = "\t\t<option value='$i'"; if($i==$akkuratnaa) $element .= " SELECTED"; $element .= ">$i</option>\n"; echo $element; } echo "\t</select>\n"; } ?> <html> <script type="text/javascript" src="../fckeditor/fckeditor.js" ></script> <script type="text/javascript"> window.onload = function() { var oFCKeditor = new FCKeditor( 'wysig' ) ; oFCKeditor.BasePath = "../fckeditor/" ; oFCKeditor.ReplaceTextarea() ; } </script> <link rel="stylesheet" type="text/css" href="2c-hd-lc-static-layout.css" /> <link rel="stylesheet" type="text/css" href="2c-hd-lc-static-presentation.css" /> </head> <body> <table width='50%'> <form method="post" action="registrer_jobb.php"> <tr> <td>Firma</td> <td><select name="firma"> <option value="ingen valgt"> --Velg ditt firma fra listen-- </option> <?php include 'config1.php'; include 'opendb1.php'; $qry = "SELECT firma_id, firma_navn FROM firma"; $resultat = mysql_query($qry, $connect); while ($rad = mysql_fetch_array($resultat)) { $id = $rad['firma_id']; $firma = $rad['firma_navn']; echo "<option value='$id'>$firma</option>"; } mysql_close($connect) ?> </select></td> </tr> <tr> <td>Tittel på annonsen:</td> <td><input type="Text" size="80" name="tittel" /></td> </tr> <tr> <td>Stillingstype:</td> <td><input type="Text" name="stillingstype" /></td> </tr> <tr> <td>Antall stillinger:</td> <td> <select name='antall'> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select></td> </tr> <tr> <td>Arbeidsplass:</td> <td><input type="Text" size="30" name="arbeidsplass" /></td> </tr> <tr> <td>Annonsetekst:</td> <td><textarea id="wysig" type="textarea" name="tekst" cols="30" rows="20"></textarea></td> </tr> <tr> <td>Annonsen skal publiseres</td> <td> <?php echo lagListe("dato", 1, 31, "d"); echo lagListe("mnd", 1, 12, "m"); $aarstall = date("Y"); echo lagListe ("aar", $aarstall, $aarstall+5, "Y"); ?> </td> </tr> <tr> <td>Annonsen skal utløpe dato</td> <td><?php echo lagListe("dato", 1, 31, "d"); echo lagListe("mnd", 1, 12, "m"); $aarstall = date("Y"); echo lagListe ("aar", $aarstall, $aarstall+5, "Y"); ?></td> </tr> <tr> <td> </td> <td><input type="Submit" name="submit" value="Publiser annonsen"></td> </tr> <td></td> </form> </table> </html> PHP: <?php include 'config1.php'; include 'opendb1.php'; if (isset($_POST[submit])) { $firma = $_POST[firma]; $tittel = $_POST[tittel]; $stillingstype = $_POST[stillingstype]; $arbeidsplass = $_POST[arbeidsplass]; $tekst = $_POST[tekst]; $publiseringsdato = $_POST[publiseringsdato]; $utgaaende = $_POST[utgaaende]; if(empty($firma)) { echo("Du glemte å velge firma!<br>"); echo "<a href='java script:history.go(-1)'>Returner til skjemaet</a>"; } if(empty($tittel)) { echo("Du glemte å fylle ut tittel!<br>"); echo "<a href='java script:history.go(-1)'>Returner til skjemaet</a>"; } if(empty($stillingstype)) { echo("Du glemte å fylle ut stillingstype!<br>"); echo "<a href='java script:history.go(-1)'>Returner til skjemaet</a>"; } if(empty($tekst)) { echo("Du glemte å fylle ut annonsetekst!<br>"); echo "<a href='java script:history.go(-1)'>Returner til skjemaet</a>"; } if(empty($publiseringsdato)) { echo("Du glemte å fylle ut publiseringsdato!<br>"); echo "<a href='java script:history.go(-1)'>Returner til skjemaet</a>"; } if(empty($utgaaende)) { echo("Du glemte å fylle ut utgaaende dato på annonsen!<br>"); echo "<a href='java script:history.go(-1)'>Returner til skjemaet</a>"; } else { $sql = mysql_query("INSERT INTO jobber (firma, tittel, stillingstype, tekst, publiseringsdato, utgaaende) VALUES ('$firma', '$tittel', '$stillingstype', '$tekst', '$publiseringsdato', '$utgaaende')"); echo "<br />"; echo "Annonsen er lagt til i databasen.<br />"; // echo "<a href="java script:history.go(-1)">Returner til skjemaet</a>"; } } ?> Lenke til kommentar
loathsome Skrevet 17. september 2008 Del Skrevet 17. september 2008 Ta en titt på PHPs timestamp » http://no.php.net/time Lenke til kommentar
Martin A. Skrevet 17. september 2008 Del Skrevet 17. september 2008 mktime() for å lage timestamp, og time() for å sammenligne. Lenke til kommentar
Palme Skrevet 18. september 2008 Forfatter Del Skrevet 18. september 2008 Så på mktime() og time() men må inrømme at jeg ikke helt fikk det til. Blir det feil å gjøre det slik som jeg gjorde det opprinnelig? For å forenkle det litt sitter jeg bare publiseringsdato til now() $sql = mysql_query("INSERT INTO jobber (firma, tittel, stillingstype, antall, tekst, publiseringsdato, utgaaende) VALUES ('$firma', '$tittel', '$stillingstype', '$antall', '$tekst', now(), '$utgaaende')"); , men det å få en expire date sliter jeg med. Forslag til hva jeg bør gjøre? Lenke til kommentar
OISNOT Skrevet 18. september 2008 Del Skrevet 18. september 2008 (endret) echo lagListe("dato", 1, 31, "d"); echo lagListe("mnd", 1, 12, "m"); $aarstall = date("Y"); echo lagListe ("aar", $aarstall, $aarstall+5, "Y"); Har får du 3 selects som gjentas 2 ganger med samme navn for start og slutt. Så de trenger unike navn. Du kan bruke mktime for å lage dato av det, deretter skrive det ut som fx date('Y-m-d', $fromMakeTime) som streng for dato feltet i sql. Eller $date = sprintf('%04d-%02d-%02d', $_REQUEST['arr'], $_REQUEST['mnd'], $_REQUEST['dato']); Husk å kontrollere at du får riktig input. http://no.php.net/manual/en/book.filter.php Endret 18. september 2008 av OISNOT Lenke til kommentar
Palme Skrevet 18. september 2008 Forfatter Del Skrevet 18. september 2008 Takker for svar, skal undersøke det litt nærmere. Jeg tok en enkel løsning på det og bare lå til 3 valg: 1, 2 eller 3 månder. Etter å ha lest litt om time() gjorde jeg bare slik: $utgaaende = $_POST[utgaaende]; if($utgaaende == 1) { $utgaaende = gmdate("Y-m-d H:i:s", (time()+(31*24*60*60))); } if($utgaaende == 2) { $utgaaende = gmdate("Y-m-d H:i:s", (time()+(62*24*60*60))); } if($utgaaende == 3) { $utgaaende = gmdate("Y-m-d H:i:s", (time()+(93*24*60*60))); } Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå