Dryper Skrevet 17. mars 2008 Del Skrevet 17. mars 2008 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 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
Jonas Skrevet 17. mars 2008 Del Skrevet 17. mars 2008 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
Dryper Skrevet 17. mars 2008 Forfatter Del Skrevet 17. mars 2008 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 Lenke til kommentar
Jonas Skrevet 17. mars 2008 Del Skrevet 17. mars 2008 (endret) 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 17. mars 2008 av Jonas Lenke til kommentar
Zandar Skrevet 17. mars 2008 Del Skrevet 17. mars 2008 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
Dryper Skrevet 17. mars 2008 Forfatter Del Skrevet 17. mars 2008 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
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å