Elke pagina een "hitcounter"
Ik heb een nieuws systeem gemaakt, maar nu wil ik een counter voor elke topic.
Ik heb dit wel eens gemaakt:
Code (php)
Maar dit is voor het aantal bezoekers..
Is er een manier om elke topic een hitcounter te zetten via een database?
Mvg
Gewijzigd op 18/07/2013 20:32:39 door Mounssif dev
Ik ga er van uit dat de nieuws artikelen in een database staan. Dan zul je waarschijnlijk een tabel 'artikelen' hebben. voeg in de tabel een extra kolom toe met de naam 'requests' of iets dergelijks met een standaard waarde 0.
Daarna doe je na iedere query die een artikel uit de database ophaalt een nieuwe query die de waarde uit de vorige query met één verhoogd.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$result = mysql_query("SELECT * FROM artikelen WHERE id=" . $id);
if($row = mysql_fetch_assoc($result))
{
// verhoog requests met 1
mysql_query("UPDATE artikelen SET requests=" . ++$row['requests'] . " WHERE id=" . $id);
// laat het artikel zien
}
?>
$result = mysql_query("SELECT * FROM artikelen WHERE id=" . $id);
if($row = mysql_fetch_assoc($result))
{
// verhoog requests met 1
mysql_query("UPDATE artikelen SET requests=" . ++$row['requests'] . " WHERE id=" . $id);
// laat het artikel zien
}
?>
Gewijzigd op 18/07/2013 20:40:52 door Frank Nietbelangrijk
Frank Nietbelangrijk op 18/07/2013 20:38:44:
ja dat is mogelijk.
Ik ga er van uit dat de nieuws artikelen in een database staan. Dan zul je waarschijnlijk een tabel 'artikelen' hebben. voeg in de tabel een extra kolom toe met de naam 'requests' of iets dergelijks met een standaard waarde 0.
Daarna doe je na iedere query die een artikel uit de database ophaalt een nieuwe query die de waarde uit de vorige query met één verhoogd.
Ik ga er van uit dat de nieuws artikelen in een database staan. Dan zul je waarschijnlijk een tabel 'artikelen' hebben. voeg in de tabel een extra kolom toe met de naam 'requests' of iets dergelijks met een standaard waarde 0.
Daarna doe je na iedere query die een artikel uit de database ophaalt een nieuwe query die de waarde uit de vorige query met één verhoogd.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$result = mysql_query("SELECT * FROM artikelen WHERE id=" . $id);
if($row = mysql_fetch_assoc($result))
{
// verhoog requests met 1
mysql_query("UPDATE artikelen SET requests=" . ++$row['requests'] . " WHERE id=" . $id);
// laat het artikel zien
}
?>
$result = mysql_query("SELECT * FROM artikelen WHERE id=" . $id);
if($row = mysql_fetch_assoc($result))
{
// verhoog requests met 1
mysql_query("UPDATE artikelen SET requests=" . ++$row['requests'] . " WHERE id=" . $id);
// laat het artikel zien
}
?>
Hij werkt heel erg bedankt!
Gewijzigd op 18/07/2013 20:51:29 door mounssif dev
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
// verhoog requests met 1
mysqli_query("UPDATE artikelen
SET requests = requests + 1
WHERE id=" . $id);
?>
// verhoog requests met 1
mysqli_query("UPDATE artikelen
SET requests = requests + 1
WHERE id=" . $id);
?>
Gebruik geen mysql_... meer.
Eddy E op 18/07/2013 22:16:23:
Wil unieke kijkers, is er geen manier om alleen per unieke bezoeker
Als ik morgen weer hetzelfde artokel lees, mag het toch meegeteld worden?
Eddy E op 19/07/2013 06:30:18:
Ja, elke view apart opslaan met een UNIQUE INDEX op de combinatie ip-adres,datum en artikel-id.
Als ik morgen weer hetzelfde artokel lees, mag het toch meegeteld worden?
Als ik morgen weer hetzelfde artokel lees, mag het toch meegeteld worden?
Dit werkt natuurlijk niet als mensen vanuit grotere netwerken een nieuwsartikel lezen. Stel een bedrijf heeft 500 medewerkers en 5 daarvan hebben het nieuwsbericht gelezen, dan krijg je maar 1 te zien aangezien ze allemaal vanaf hetzelfde public ip komen.
Mounssif dev op 19/07/2013 01:28:58:
Wil unieke kijkers, is er geen manier om alleen per unieke bezoeker
En wat als iemand eerst op het werk kijkt, onderweg op de smartphone en later nog een keer thuis? Is dezelfde bezoeker. Hoe wil je dat gaan controleren?
Mounssif dev op 19/07/2013 01:28:58:
Wil unieke kijkers, is er geen manier om alleen per unieke bezoeker
Dat is 1 van de zaken waar Google heel erg veel energie in heeft gestoken.
Met andere woorden: het is niet zo gemakkelijk als men zou vermoeden.
Aangezien hij nog moet vragen hoe je een teller in een database moet verhogen.
Kan wel: gebruik Google Analystics.