Gå til innhold

Hjelp med publiseringsdato


Anbefalte innlegg

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
Videoannonse
Annonse

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

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 av OISNOT
Lenke til kommentar

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

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