| FAQ |
| Kalender |
|
|
#1 | ||
|
|||
|
Nykomling
|
Hej,
Jag har ett skript på en sida som ska lägga till nya besökare i en DB för statistik genom att kolla igenom en DB-tabell efter unika IP-nummer. Gjorde en kodremsa men den lyckas inte kolla av ifall numret redan finns: Kod:
$visitors = mysql_query("SELECT * FROM visitors") or exit(mysql_error());
$ip_array = mysql_fetch_array($visitors);
$user_ip = $_SERVER['REMOTE_ADDR'];
if ( !in_array($user_ip, $ip_array))
{
$strQuery = mysql_query("
INSERT INTO visitors
(ip)
VALUES
('" . $user_ip . "'
)");
}
/S |
||
|
|
Svara med citat
|
|
|
#2 | ||
|
|||
|
Flitig postare
|
Kan inte PHP med du kan ju kolla bara om jsut den IPen finns i databasen och om den inte hitatr någon post så läger du till den..
SQL koden blir då : SELECT * FROM visitors WHERE IP = xxx.xxx.xxx.xx |
||
|
|
Svara med citat
|
|
|
#3 | ||
|
|||
|
Nykomling
|
hm nja. jag är ganska ny på PHP men vad jag vet så går det inte att ta en if-sats eller en OR inom mysql_query SELECT strängen. annars hade det ju varit en väldigt smidig lösning.
|
||
|
|
Svara med citat
|
|
|
#4 | ||
|
|||
|
Medlem
|
Vill du enbart spara unika adresser så kan du skapa ett UNIQUE-index för fältet, sen behöver du bara köra INSERT INTO visitors (ip) VALUES ('$ip'); och behöver inte tänka på någonting mer. Finns adressen redan i tabellen så händer inget. Finns den inte så läggs den till.
Liten överkurs, räkna unika besökare per dag och använd heltalsrepresentationen av ip-adressen för att tabellens row_format ska bli "fixed". Kod:
CREATE TABLE `visitors` (
`d` date NOT NULL,
`ip` int(10) unsigned NOT NULL,
`n` int(10) unsigned NOT NULL,
UNIQUE KEY `d-ip` (`d`,`ip`)
)
$q = mysql_query("INSERT INTO visitors (d, ip, n) VALUES (CURDATE(), INET_ATON($ip), 1)");
if(mysql_affected_rows() != 1) {
mysql_query("UPDATE visitors SET n = n + 1 WHERE d = CURDATE() AND ip = INET_ATON($ip)");
}
|
||
|
|
Svara med citat
|
|
|
#5 | ||
|
|||
|
Nykomling
|
lysande! tack Peter!
|
||
|
|
Svara med citat
|
| Svara |
| Ämnesverktyg | |
| Visningsalternativ | |
|
|