17. maj 2003 - 10:36Der er
25 kommentarer og 1 løsning
Kan en SQL post have en udløbstid??
Hejsa, Jeg har en side, hvor der er indrykket nogle annoncer, hvor de henholdsvis er sat til at skulle vare 7, 14 eller 30 dage. Noget ala dba.dk
Når jeg indrykker annoncen via min form, så gemmer jeg dato og kl i databasen i dette format: 17/05/2003 09:36:31, og i et andet felt i databasen står der bare 7, 14 eller 30 for hvor mange dage annoncen skal løbe over...
Hvordan kan jeg i min SELECT skrive sådan, at jeg får vist de "gyldige" annoncer i forhold til kl annoncen er indrykket på, og hvor lang tid den skal løbe over??
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Der findes ikke en egentlig udløbsfunktion på poster, men det mest normale er at tilføje et felt, der hedder "expires" og når du opretter posten, så udregne tidspunktet, den udløber på.
Ved søgninger skal du så have et kriterie, der hedder "expires > now()" som en del af where-betingelserne.
Du skal - for at rydde op - enten manuelt eller via cronjob, køre en sletning, der fjerner alle poster med "expires < now()", for at slette disse.
Jeg arbejder i PHP, bare lige for at slå det fast!
Okay, jeg har mit dato felt: 17/05/2003 09:36:31 som jeg har hentet via funktionen $dato = date('d/m/Y H:i:s');
Så skal jeg på en eller anden måde lave sådan at mit varighedsfelt kommer til at se sådan ud: 24/05/2003 09:36:31, hvis den skal vare i 7 dage annoncen. Men hvordan gør jeg det?? Er det den rigtige måde jeg gemmer dato og kl på for at få det til at virke?
okay, jeg er sgu lidt forvirret her: 1: Hvad skal jeg ændre mit datofelt til i min database?
2: Min INSERT ser sådan her ud: --------- $dato = date('d/m/Y H:i:s'); mysql_query("INSERT INTO kobsalgbytte (dato, hvad, kategori, varighed, titel, beskrivelse, pris, navn, hjemsted, tlf, email) VALUES ('$dato', '$hvad', '$kategori', '$varighed', '$titel', '$beskrivelse', '$pris kr', '$navn', '$hjemsted', '$tlf', '$email')") OR DIE (mysql_error()); mysql_close; --------- Hvordan skal den ændres i forhold til det mahler skriver?
3: Hvordan får jeg hevet de rigtige data ud fra db'en igen?
mahler: okay...men den $varighed som du siger jeg skal lave, er det ikke den den tager med fra formen når man indrykker annoncen? Der har jeg jo en felt der hedder varighed, hvor man vælger enten 7,14 eller 30 dage, som den så tager med?
mahler: Nu har jeg fået lavet sådan at den skriver datoen ud med den varighed på enten 7, 14 eller 30 dage lagt oveni, og det virker fint. Prøv evt. her: http://www.thomaslunde.dk/peter/index.php
Hvordan gør jeg så nu sådan, at jeg kun får vist de "gyldige" annoncer, så den hvor datoen er overskredet ikke bliver vist?
Min query på "se annoncer" ser sådan ud nu: $query = mysql_query("SELECT * FROM kobsalgbytte WHERE kategori='$_GET[kat]' AND dato < now() ORDER BY varighed ASC");
Og jeg har prøvet at rette den med thorkild kristensen i db'en, så varighed i db'en skulle være igår, men den viser den stadigvæk...
Jeg har leget lidt med det antal der skal være på indexsiden, og der har jeg prøvet noget ala:
<? db_con(); //Henter hvor mange annoncer der er i databasen $query = mysql_query("SELECT * FROM kobsalgbytte WHERE varighed > now()" ) or die (mysql_error()); $row = mysql_fetch_array($query); echo "Der er pt. $row[varighed] annoncer i databasen"; ?>
Men jeg skal have den til at tælle hvor mange poster der er "gyldige" i stedet for bare at printe postens indhold ud. Hvordan gør jeg det??
$query = mysql_query("select count(*) as antal from kobsalgbytte where varighed < now()"); $row = mysql_fetch_array($query); echo "Der er pt. $row[antal] annoncer i databasen";
Jeg har lige en sidste ting du gerne må hjælpe mig med. Det er under "Se annoncer", hvor der står hvor mange "gyldige" annoncer der er under hver kategori, og der har jeg prøvet at lavet noget ala dette, men det vil heller ikke lige virke:
<? db_con(); $query = mysql_query("select count(*) as antal from kobsalgbytte WHERE kategori='$_GET[kat]' AND varighed > now()"); $row = mysql_fetch_array($query); echo "$row[antal]"; ?>
Dette er det sidste jeg skal have hjælp til...håber du lige har tid?
Ikke noget alligevel...jeg skal bare den specifikke kategori ind i SELECT, og så virkede det. Tak for al din hjælp, og her er dine points!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.