Hvis man har et system som logger klientens ip og server tid, og klienten besøger siden to gange så vil der være to records i databasen..! Findes der en måde at logge aktiviteten i samme record? Altså når bruger klikker sig ind på siden bliver der søgt i en databse efter hans ip, hvis den findes så bliver hans \"AntalBesoeg\" + med 1, hvis ikke bliver der oprettet en ny record. Information: Tabellen\'s DSN navn er \"mrhyde\" og tabbel hedder \"spy\". ID er primærnøgle (autonum.). Rækkerne der efter hedder IP, Servertid og Antalbesøg.
Et IP-nummer er nu da en tosset ting at bruge. Mange brugere har jo samme IP, men er alligevel forskellige (se f.eks. http://www.eksperten.dk/spm/49785), og så bliver der jo talt galt. Men ok - det var jo ikke det spørgsmålet gik på....
sql = \"SELECT COUNT (id) from spy WHERE IP=\" & ipadresse rs = conn.execute(sql)
ir rs(0) > 0 THEN sql = \"UPDATE spy SET Antalbesøg=Antalbesøg+1 WHERE IP=\'\" & ipadresse &\"\'\" else sql = \"INSERT INTO spy (IP, Antalbesøg) values (\'\" & ipadresse & \"\', 1) end if
stigc\'s svar kan udbygges rigtig smart, så man i de fleste tilfælde sparer et SQL-kald.
SQL=\"UPDATE spy SET AntalBesøg=AntalBesøg+1 WHERE ipadresse=\" & ipadresse call Conn.Execute(SQL, rowsAffected)
Execute-kommendoen returnerer et tal til variablen rowsAffected = antallet af berørte poster i databasen.
IF rowsAffected=0 THEN \' ingen poster opdateret SQL=\"INSERT INTO....\" call Conn.Execute(SQL) END IF
Når IP-nummeret eksisterer i databasen, så kræver det kun ét SQL-kald.
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.