Gå til innhold

Slette fra database når tiden er inne (mer detaljert i posten :P)


Anbefalte innlegg

Heisann, jeg holder på å lage en auksjon side og nå har jeg komt over et problem som jeg ikke får til...

 

Det starter jo med at brukeren legger inn en auksjon, da må brukeren skrive i en form som heter "sluttdato" hvor mange dager auksjonen skal holde på. la oss nå si at brukeren skriver 10 dager der. da vil datoen som blir lastet opp i databasen NOW+10 det vil si 10 dager :) men hvordan i huleste kan jeg gjøre slik at den "row"'en blir slettet når det er gått 10 dager?. jeg får bare til å slette hele databasen som er gamlere en NOW()... håper noen kan hjelpe .. her er det som laster opp infoen :p

 

 

Formen

<form action='leggtill.php' method='post' enctype='multipart/form-data'>
<label for='file'>Velg fil:</label></td><td>
<input type='file' name='file' id='file' />
<br />Beskrivelse:
<input type='text' name='beskrivelse' />
<br />Utrop:
<input type='text' name='utrop' />
<br />Auksjonens Varighet (antall dager) :
<input type='text' name='sluttdato' value='1' />dag(er)
<br /><input type='submit' name='submit' value='Last Opp' />
</form>

 

 

 

INSERT koden.

<?
include ("config.php");
$tid 	= (date("H:i:s - M/D/Y"));
$klokke 	= (date("H:i:s - "));
$tomorrow = mktime(0, 0, 0, date("m"), date("d")+$_POST[sluttdato], date("y"));
$sluttdato = "$klokke".date("M/D/Y", $tomorrow); 


$hent 	= mysql_query("SELECT * FROM auksjon ORDER BY id DESC LIMIT 1");
$henta	= mysql_fetch_array($hent);
$id 	= ($henta['id'] + 1);

$sql	="INSERT INTO auksjon (id, beskrivelse, tidspunkt, sluttdato, utrop, startbud, gibud, counter) VALUES ('$id','$_POST[beskrivelse]','$tid', '$sluttdato' ,'$_POST[utrop]','$_POST[startpris]','','count')";

if (!mysql_query($sql,$con)) {
die('Error: ' . mysql_error());
}

echo " Auksjonen er lagt til! den vil slutte: $sluttdato . Hilsen Sniken Auksjon A/S";

mysql_close($con);

 

 

Håper noen kan hjelpe meg :)

 

Takker. Dryper

Lenke til kommentar
Videoannonse
Annonse

Du lager et timestamp som tilsvarer tiden om x antall dager, og du sletter alle rader hvor Time() overskrider dette timestampet.

 

$sql = "INSERT INTO auksjon (id, beskrivelse, tidspunkt, sluttdato, utrop, startbud, gibud, counter) VALUES ('$id','$_POST[beskrivelse]','$tid', " . ( Time() + 60*60*24*$antallDager ) . " ,'$_POST[utrop]','$_POST[startpris]','','count')";

 

DELETE FROM auksjon WHERE sluttdato < Time()

 

(Aner ikke hva som tilsvarer Time() i MySQL, men dette henter du i verste fall fra PHP.)

Lenke til kommentar
Du lager et timestamp som tilsvarer tiden om x antall dager, og du sletter alle rader hvor Time() overskrider dette timestampet.

 

$sql = "INSERT INTO auksjon (id, beskrivelse, tidspunkt, sluttdato, utrop, startbud, gibud, counter) VALUES ('$id','$_POST[beskrivelse]','$tid', " . ( Time() + 60*60*24*$antallDager ) . " ,'$_POST[utrop]','$_POST[startpris]','','count')";

 

DELETE FROM auksjon WHERE sluttdato < Time()

 

(Aner ikke hva som tilsvarer Time() i MySQL, men dette henter du i verste fall fra PHP.)

 

 

når jeg gjør det blir det bare tekst i dben.. ingen timestamp.. kommandoen står i row en

 

 

 

$timestamp = "time() + 60*60*24*$_POST[sluttdato]";

 

 

hva er galt her?

 

Takker for svar :p

Lenke til kommentar

Uh, det blir tekst fordi du skriver tekst.

 

$timestamp = "time() + 60*60*24*$_POST[sluttdato]";

.. ikke slik, men slik.

 

$timestamp = time() + 60*60*24*$_POST['sluttdato'];

 

Edit: Naturligvis, Zander, så ikke den.

Endret av Jonas
Lenke til kommentar
Uh, det blir tekst fordi du skriver tekst.

 

$timestamp = "time() + 60*60*24*$_POST[sluttdato]";

.. ikke slik, men slik.

 

$timestamp = time() + 60*60*24*$_POST[sluttdato];

Du mangler fnutter på sluttdato.

 

$timestamp = time() + 60*60*24*$_POST['sluttdato'];

Lenke til kommentar
Uh, det blir tekst fordi du skriver tekst.

 

$timestamp = "time() + 60*60*24*$_POST[sluttdato]";

.. ikke slik, men slik.

 

$timestamp = time() + 60*60*24*$_POST[sluttdato];

Du mangler fnutter på sluttdato.

 

$timestamp = time() + 60*60*24*$_POST['sluttdato'];

 

 

Takker for all hjelp !

 

Til alle sammen

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