Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Contatore [MySql/PHP]

  1. #1

    Contatore [MySql/PHP]

    TABLE MYSQL:

    CREATE TABLE visite_tot
    (
    pagina VARCHAR(50)default NULL,
    visite INT(10) DEFAULT 0 NOT NULL
    )
    -----------------------------------------------
    CREATE TABLE visite_uni
    (
    visite INT(10) DEFAULT 0 NOT NULL
    )

    PHP:

    Codice PHP:
    <?php

            $host 
    "localhost"//inseriamo l'host
        
    $username "username"//inseriamo l'username
        
    $password "xxxxxxxxx"//inseriamo la password
        
    $db "database"//selezioniamo il database
        
    $conn_host mysql_connect($host,$username,$password) or die (mysql_error());        //connessione all'host
        
    $conn_db mysql_select_db($db) or die (mysql_error()); //connessione al database
        
        // identificativo numerico della pagina
        
    $pagina $sub//$sub --> nome pagina
        
        /* --- VISITE TOTALI --- */
        
    $res mysql_query("SELECT * FROM visite_tot WHERE pagina = '$pagina' "); 
        
        if (
    $res == FALSE)
        { 
            
    // pagina non presente nel database - aggiungo la pagina nella tabella
            
    mysql_query("INSERT INTO visite_tot (pagina, visite) VALUES ('$pagina', 1)");
        }
        else
        {
            
    mysql_query("UPDATE visite_tot SET visite = visite + 1 WHERE pagina = '$pagina' ");
        }
        
    /* --- FINE --- */
        
        /* --- VISITE UNICHE --- */
        
    $res mysql_query("SELECT * FROM visite_uni");
        if(
    $res == FALSE)
        { 
            
    // pagina non presente nel database - aggiungo la pagina nella tabella
            
    mysql_query("INSERT INTO visite_uni (visite) VALUES (1)");
        }
        else {
            if(empty(
    $_COOKIE['unique_hit'])) 
            {
                
    // controllo cookie
                    
    setcookie("unique_hit""set"time()+86400);
                    
    mysql_query("UPDATE visite_uni SET visite = visite + 1 ");
            }
            else
            { 
                
    mysql_query("UPDATE visite_uni SET visite = visite + 0"); 
            }
        }
        
    /* --- FINE --- */
        
    ?>
    Non registra nulla nel database e non da nessun accenno di errore.
    Cio che dovrebbe fare è registrare le visite totali e le visite uniche giornaliere.
    Come mai? Suggerimenti?

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Aggiungi a mysql_query... mysql_query(...) or die(mysql_error()); e vedi se da errori

  3. #3
    Originariamente inviato da m4rko80
    Aggiungi a mysql_query... mysql_query(...) or die(mysql_error()); e vedi se da errori
    Nessun errore.

  4. #4
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Fai un echo delle query in modo statico e prova ad inserire a db.
    Vedi che succede.
    Qualcosa che non va evidentemente c'e'

  5. #5
    Originariamente inviato da m4rko80
    Fai un echo delle query in modo statico e prova ad inserire a db.
    Vedi che succede.
    Qualcosa che non va evidentemente c'e'
    Ho messo un echo alle due variabili $res | ciò che appare:

    Resource id #4Resource id #5

    Faccio un echo anche per le altre query?

  6. #6
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Intendevo un echo di "SELECT * FROM visite_uni"..... e usarle manualmente nel db da phpmyadmin o quello che usi e vedere se la sintassi e' corretta.
    Se si inserisce altrimenti dovresti vedere da li l'errore

  7. #7
    Originariamente inviato da m4rko80
    Intendevo un echo di "SELECT * FROM visite_uni"..... e usarle manualmente nel db da phpmyadmin o quello che usi e vedere se la sintassi e' corretta.
    Se si inserisce altrimenti dovresti vedere da li l'errore
    Sostituendo FALSE con TRUE i dati ne database vengono inseriti, soltanto che come numero di visita resta sempre 1.
    Codice PHP:
    $res mysql_query("SELECT * FROM visite_tot WHERE pagina = '$pagina' "); 
        
        if (
    $res == FALSE

  8. #8
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    update TABELLA set CAMPO= CAMPO+1
    Questa sintassi e' corretta assicurati che entri nel controllo gisuto.

  9. #9
    Originariamente inviato da m4rko80
    update TABELLA set CAMPO= CAMPO+1
    Questa sintassi e' corretta assicurati che entri nel controllo gisuto.
    Allora, ho fatto cosi (per quanto riguarda visite totali):
    Codice PHP:
    /* --- VISITE TOTALI --- */
        
    $res mysql_query("UPDATE visite_tot SET visite = visite + 1 WHERE pagina = '$pagina'"); 
        
        if (!
    mysql_num_rows($res))
        { 
        
    // nessuna visita presente nella tabella e impostiamo 1
        
    mysql_query("INSERT INTO visite_tot (pagina, visite) VALUES ('$pagina', '1')");
        }
    /* --- FINE --- */ 
    Soltanto che ogni volta invece di aggiornare la riga stessa della tabella, ne crea una (aggiornata).
    Cioè:
    pagina|visite

    fotografie|3
    fotografie|2
    fotografie|1

    Invece che:

    pagina|visite
    fotografie|3

    Come mai?

  10. #10
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Non puoi usare mysql_num_rows() per update, devi usare mysql_affected_rows()
    Leggi nella descrizione http://it2.php.net/manual/en/functio...l-num-rows.php

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.