Contatore Top Forum

« Older   Newer »
  Share  
maxmaxuell
view post Posted on 2/4/2012, 21:18 by: maxmaxuell     +1   -1




Cu-cł? c'č nessuno?
Esiste un modo?

un contatore che aumenta ogni mezzora?
di 2 punti alla volta


Esempio Web Designer

Ciao, puoi usare lo Script PHP Toplist.
www.webstyling.it/script/php/toplist_php.php


Esempio criric

Ciao,
provo a spararne una, molto molto artigianale ......

nella pagina degli accessi :

CODICE
<?php

         //connessione a mysql
         $conn = mysql_connect("localhost", "root", "", "database");
         $db = mysql_select_db("database");
         // ad ogni nuovo accesso potremmo aggiornare il contatore
         // Calcolando che la query per l'inserimento degli accessi sia piu o meno cosi
         $query = "INSERT INTO accessi SET idUtente = " . $_SESSION['idUtente'] . ",
                                           dataAccesso = NOW()";

         // impostiamo il tempo
         $minuti = 30;
         // recuperiamo il valore del contatore in questo caso da un file di testo
         $file = "contatore.txt";
         $fr = fopen($file, 'r') or die("Impossibile aprire il file in lettura!");
         $contatore = fgets($fr);
         fclose($fr);

         // calcoliamo quanto tempo č passato dall'ultimo accesso
         $query = "SELECT TIMESTAMPDIFF(MINUTE , dataAccesso, NOW()) AS tempo
                          FROM accessi
                          ORDER BY dataAccesso DESC
                          LIMIT 1";
         $tempo = mysql_fetch_row(mysql_query($query));

         // lo dividiamo per i minuti prefissati arrotondando all'eccesso
         $incremento = ceil($tempo[0] / $minuti);


         // se maggiore di uno dobbiamo aumentare il contatore
         if ($incremento > 1) {
             // in pratica il numero dell mezze ore per i 2 punti    
             $contatore+= $incremento * 2;    
         } else {
             // altrimenti decrementiamo di 2
             $contatore-=2;
         }
         // aggiorniamo il contatore
         $fr = fopen($file, 'w') or die("Impossibile aprire il file in scrittura!");
         fwrite($fr, $contatore);
         fclose($fr);
         ?>

Per visualizzare il contatore :

CODICE
<?php
         // nella pagina si visualizza
         $file = "contatore.txt";
         $fr = fopen($file, 'r') or die("Impossibile aprire il file in lettura!");
         $contatore = fgets($fr);
         fclose($fr);
         echo $contatore;
         ?>


mi sembra ok c'č una parte che non capisco bene...


HTML
$query = "SELECT TIMESTAMPDIFF(MINUTE , dataAccesso, NOW()) AS tempo
FROM accessi
ORDER BY dataAccesso DESC
LIMIT 1";
$tempo = mysql_fetch_row(mysql_query($query));

TIMESTAMPDIFF.....?
la tabella č accessi
i campi MINUTE, dataAccesso,NOW()..
-----------------------------


- criric:

La tabella č accessi

i campi sono idUtente e dataAccesso

TIMESTAMPDIFF č una funzione di mysql che ti restituisce la differenza tra due date

con MINUTE gli indichi come ti deve restituire la differenza quindi in minuti

NOW č la data corrente

In pratica ti restituisce la differenza in minuti tra la data registrata e quella corrente

Per la funzione TIMESTAMPDIFF č necessario il database ma la differenza tra due date si puo calcolare anche in php

Senza database intendi anche per gli accessi?

penso di si, al momento non mi viene in mente niente di intelligente pero se vuoi evitare il database ci possiamo provaree



 
Top
3 replies since 2/4/2012, 21:04   51 views
  Share