| max_400 |
| | Ciao a tutti. Mi piacerebbe creare una specie di contatore visite però al contrario cioè il numero aumenta in mancaza di visite, si può fare in php? L'esempio è nel mio forum https://max400.forumfree.it/in basso su statistiche vedrete un numero tipo 457° top forum questo numero rappresenta la media delle visite degli utenti in base a tutti i forum del circuito forumfree. Ogni visita vale 2°....in mancanza di visite...se nessuno visita il forum questo numero sprofonda quindi ogni mezzora avremo 459° poi 461° poi 463° Qualkuno di voi è capace di realizzarlo? Grazie. Ps adesso il numero è sceso a 378°...i primi giorni di ogni mese le posizioni cambiano moltissimo poi si stabilizzano. Quando si arriva sotto ai 200 si ha la possibilita di inserire un pulsante per essere votati in topo forum quando un utente clicca sul pulsante regala all'amministratore la bellezza di 50 punti
| | |
| |
|
| maxmaxuell |
| | 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.phpEsempio 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
| | |
| |
|
| Luca88SD |
| | Max vedi cosa si può fare
| | |
| |
|
| max_400 |
| | eh si... ma tu conosci un po di programmazione? se è sì cosa conosci in particolare?
| | |
| |
|
| 3 replies since 2/4/2012, 21:04 51 views |
| |
| | |