Avatar billede JJ77 Juniormester
26. marts 2006 - 01:48 Der er 9 kommentarer og
2 løsninger

Afvikle script ved første besøgende pr. dag.

jeg har fundet nedenstående kode som skulle gøre det muligt at få den første bruger som besøger min hjemmeside pr. døgn til at køre et script som indeholder en mailfunktion (sender en mail til brugere hvis annoncer er ved at udløbe). Jeg kan bare ikke helt greje hvordan jeg skal få det til at virke.. Er her nogle som kan det?

$dato = date("Y-m-d");
$result = mysql_query("SELECT * FROM hundupdate ORDER BY dato DESC LIMIT 1");
$row = mysql_fetch_assoc($result);
$lastdate = $row['dato'];
if($lastdate != $dato) {
  //en hel masse pladder
Avatar billede ducks Nybegynder
26. marts 2006 - 03:08 #1
Gem det i en række som du har gjort og brug noget datediff() til at kontrollere om den gemte dato er mere end 0 fra i dag:

http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html

$result = mysql_fetch_assoc(mysql_query("SELECT * FROM hunupdate WHERE DATEDIFF(saved_date_in_database, DATE()) > 0 AND id = 1"))
if($result)
  # send mail

Jeg har brugt id=1 fordi jeg går ud fra at det er en information som kun gemmes i en række :)
Jeg håber noget af det kan bruges ;)
Avatar billede JJ77 Juniormester
26. marts 2006 - 03:13 #2
kan du ikke uddybe en smule.. Hvor fann kommer datoen ind i tabellen, som den skal tjekke på.. for scriptet indsætter jo ikke en dato når det har kørt, vel?
Avatar billede ducks Nybegynder
26. marts 2006 - 03:20 #3
Beklager det var kun et kortfattet eksempel, jeg har ikke en PHP/MySQL server som jeg kan teste det på lige nu, men du skal indsætte en dato i MySQL efter if($result){ da scriptet har kørt 1 gang den, når det kommer der til.

Hvis ikke andre svar kommer inden, ser jeg lige på det i morgen, hvor jeg har mulighed for at teste det på PHP/MySQL.
Avatar billede jakobdo Ekspert
26. marts 2006 - 11:16 #4
Du burde kunne bruge denne SQL: SELECT * FROM hundupdate WHERE TO_DAYS(CURDATE()) = TO_DAYS(dato) LIMIT 1

Den vil give dig et hit, hvis du har haft en besøgende i dag.
Hvis ikke, så kører du dit script og smider så en række i tabellen: hundupdate

Ducks: Montana kan desværre ikke bruge datediff, hans udbyder kører med mysql 4.0.24
Datediff kom først i version 4.1.1 (ikke noget du kunne vide ud fra hans indlæg her, men jeg har hjulpet ham før)
Avatar billede whatever Nybegynder
26. marts 2006 - 12:09 #5
Hvis det skulle ske at du en dag ikke havde nogle besøgende, bliver scriptet jo ikke kørt, og ingen vil modtage reminder e-mailen. Hvis der skal sendes mange e-mails, vil den første besøgende hver dag opleve at siden hænger, til den er færdig med at sende e-mails.

Var det ikke bedre at benytte et cronjob til at eksekvere scriptet en gang i døgnet? Så slipper du for problemerne ovenfor.

Hvis din webhoteludbyder ikke vil sætte et cronjob op for dig, kan du gratis sætte et op på www.cronjob.de.
Avatar billede JJ77 Juniormester
26. marts 2006 - 15:40 #6
med hensyn til cronjob.de, er der så ikke noget de skal have igen for at køre det for en? har været inde på deres hjemmeside. Er ikke en mester til tysk, så kan derfor ikke gennemskue, hvilke betingelser der er:)
Avatar billede jakobdo Ekspert
26. marts 2006 - 15:42 #7
Her er opskrift på hvordan du gør: http://www.eksperten.dk/spm/571952
Indlæg: 17/12-2004 22:04:37
Avatar billede JJ77 Juniormester
26. marts 2006 - 15:51 #8
--> jakobdo. Helt sikkert.. cool nok.. så bruger jeg sku dem.  Det er nok også det mest optimale i længden :) takker mange gange.

Da der er flere som har forsøgt at hjælpe, smider i så ikke lige et svar så i kan få lidt points. takker:)
Avatar billede jakobdo Ekspert
26. marts 2006 - 16:06 #9
Kan du tro...
Avatar billede whatever Nybegynder
26. marts 2006 - 17:20 #10
Det er gratis at benytte cronjob.de. Jeg benytter dem selv til at eksekvere et script, der rydder op i nogle mailbokse.
Avatar billede jakobdo Ekspert
27. marts 2006 - 15:30 #11
Takker for point!
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