Jeg har lavet en lille klasse til dig du måske kan bruge...
hits.class.php- <?php
-
- class Hits {
-
- //Indeholder database obj
- private $database;
-
- function __construct($database) {
- if (get_class($database) == "mysqli" && is_object($database)) {
- $this->database = $database;
- } else {
- throw new Exception("Database fejl");
- }
- }
-
- public function hentHits($id) {
- $stmt = $this->database->prepare("SELECT * FROM hits WHERE id=?");
- $stmt->bind_param('i', $id);
-
- //Tjekker om query var okay
- if ($stmt->execute()) {
- $result = $stmt->get_result();
- if ($result->num_rows > 0) {
- $obj = $result->fetch_object();
- return $obj->hits;
- } else {
- throw new Exception("Ingen hits fundet");
- }
- } else {
- throw new Exception("Fejl ved forbindelse til databasen");
- }
- }
-
- public function opdatereHits($id) {
- $stmt = $this->database->prepare("UPDATE hits SET hits = hits+1 WHERE id=?");
- $stmt->bind_param('i', $id);
-
- //Tjekker om query var okay
- if ($stmt->execute()) {
- return TRUE;
- } else {
- throw new Exception("Fejl ved forbindelse til databasen");
- }
- }
-
- }
- ?>
Filen som brugeren henter dataen fra evt. selv sæt filtypen, headers, osv.
hits.php- <?php
- include 'hits.class.php';
- try{
- $hits = new Hits(new mysqli("localhost", "root", "", "cms"));
- $hits->opdatereHits($_GET['id']);
- $Element = '<div id="id">';
- $Element .= $hits->hentHits($_GET['id']);
- $Element .= '</div>';
- echo $Element;
- }
- catch (Exception $fejl) {
- echo $fejl->getMessage();
- }
- ?>
Til sidst og ikke mindst koden som brugeren skal have på deres hjemmeside:
- <?php
- $side = file_get_contents('http://DITLINK/hits.php?id=1');
- preg_match("/<div id=\"id\".*div>/", $side, $hits);
- echo "Antal hits: ". $hits[0];
- ?>
Men der skal jo også siges at der ikke bliver taget højde for unikke hits osv... Men ellers smid noget kode vi kan bygge vidre på..
Rettelse:Database info:
Tabel: hits
felt: id (brugeren id)(primær)
felt: hits (antal hits)
Indlæg senest redigeret d. 17.12.2013 19:56 af Bruger #7728