Avatar billede webudvikleren Nybegynder
14. august 2007 - 23:23 Der er 11 kommentarer og
2 løsninger

Afsluttende konkurence, søger idé

Hejsa.
Jeg er i gang med en webside, hvor jeg angiver en "slut tid" på konkurrencerne, i et time()-format.

Jeg vil gerne have det sådan, at den automatisk afslutter konkurrencen, hvis det nuværende time() er større end konkurrencens "slut tid".

Har f.eks 4 rækker i min database.
id - sluttid

Række eksempel:
1 - 13839233
2 - 17394444
3 - 19304441
4 - 83944444

Så skal den automatisk i min index-side, afslutte de konkurrencer, som er "afsluttet" med "slut-tiden".

Det er lidt besværligt at beskrive, men jeg prøver lige at lave en "dansk-oversættende-if-sætning":

if ( der er en eller flere konkurrencer i tabellen som er afsluttet)
{
      findvinder(id);
      afslutkonkurrence(id);
} else {
      der er ingen konkurrencer som er afsluttet, så vi kører bare videre til der afsluttes en ny konkurrence
}

Forstår I hvad jeg mener? Det er lidt besværligt, men håber da nogle kan se hvad jeg prøver på - ellers spørg løs, hvis i har spørgsmål til det.

På forhånd tak!
Avatar billede jakobdo Ekspert
15. august 2007 - 09:14 #1
Det er noget du har planer om at køre som et cronjob en gang i timen eller lign ikke?
Avatar billede webudvikleren Nybegynder
15. august 2007 - 15:56 #2
Havde tænkt mig at køre den hver dag kl. 00 - for at være sikker på, at der er en som besøger den mindst én gang om dagen.

Men problemet ligger mere i selve php-systemet.
Avatar billede jakobdo Ekspert
15. august 2007 - 15:58 #3
Hvad mener du med php-systemet?
Avatar billede webudvikleren Nybegynder
15. august 2007 - 16:38 #4
Det som spørgsmålet lyder på.
Hvordan jeg laver sådan den kan tjekke om konkurrencerne er afsluttet via noget med time()

"Det er lidt besværligt at beskrive, men jeg prøver lige at lave en "dansk-oversættende-if-sætning":

if ( der er en eller flere konkurrencer i tabellen som er afsluttet)
{
      findvinder(id);
      afslutkonkurrence(id);
} else {
      der er ingen konkurrencer som er afsluttet, så vi kører bare videre til der afsluttes en ny konkurrence
}"
Avatar billede webudvikleren Nybegynder
15. august 2007 - 16:44 #5
Konkurrence-indeks.
Når jeg indsætter en konkurrence, skal jeg vælge hvornår den skal slutte. Jeg bruger time() og sætter +5 days oveni, f.eks.
Så vil "slut-tiden"  blive time()-((3600*24)*5). Vi siger det bliver "10238404"

Så skal den tjekke via index.php filen, i stil med:

$query = mysql_query("SELECT id FROM konkurrencer HVOR der er en/flere konkurrencer som er udløbet");

if ( mysql_num_rows($query) == 0)
{
    ikke gør noget
} else {
    følgende konkurrencer er afsluttet: "id"
}

I stil med det som de gør på www.trendgirl.dk med "konkurrencen slutter om xx dage" :-)
Avatar billede olebole Juniormester
15. august 2007 - 16:50 #6
<ole>

Slut tiden bliver time()+((3600*24)*5) - og det er det stamp, du indsætter som 'slutstamp'. Så kan du vel sige:

$sql = "SELECT `id` FROM `konkurrencer` WHERE `slutstamp`<'".time()."'";
mysql_query($sql);

/mvh
</bole>
Avatar billede olebole Juniormester
15. august 2007 - 16:51 #7
- altså:
    $query = mysql_query($sql);
Avatar billede jakobdo Ekspert
15. august 2007 - 17:15 #8
Og du bør jo så evt. have et felt, som angiver om konkurrencen er afsluttet eller stadig kørende.
Ellers vil slutstamp < TIME() give allerede afsluttede konkurrencer.
Avatar billede webudvikleren Nybegynder
15. august 2007 - 17:27 #9
Ja, det var mere simpelt end jeg regnede med.

Jeg lavede følgende:

$check = mysql_query("SELECT `id` FROM `praemier` WHERE `slut` < " . time() . "");
if ( mysql_num_rows ( $check ) > 0)
{
  while ( $afsluttet = mysql_fetch_assoc ( $check ) )
  {
        FindVinder( $afsluttet['id'] );
        AfslutKonkurrence ( $afsluttet['id'] );
  }
}

Smid svar jakob (fordi jeg lavede et felt, som fortæller den er afsluttet)
Og smid svar olebole, fordi du kom med en løsning :-)
Avatar billede jakobdo Ekspert
15. august 2007 - 18:57 #10
Svar!
Avatar billede olebole Juniormester
16. august 2007 - 04:48 #11
Okay, jeg troede, de blev slettet efter udregning af points  =)
Avatar billede jakobdo Ekspert
16. august 2007 - 15:36 #12
Takker for point.
Avatar billede olebole Juniormester
16. august 2007 - 15:50 #13
Tak for points  ;o)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester