Visualizzazione risultati 1 fino 9 di 9

Discussione: ho un problema con il contatore non conta aiuto thx

  1. #1
    Guest

    Predefinito ho un problema con il contatore non conta aiuto thx

    quesa dovrebbe creare la tabella per i dati nel mysql

    $host = "localhost";
    $user = "user";
    $pass = "miapss";
    $nome_db = "my_user";
    $nome_tab = "nometabella";

    ---e fino qui è giusto -----

    @mysql_connect($host, $user, $pass);
    @mysql_select_db($nome_db);

    $query = "CREATE TABLE $nome_tb (
    accessi int(10) unsigned NOT NULL default '0',
    visite int(10) unsigned NOT NULL default '0'
    id tinyint(3) unsigned NOT NULL auto_increment,
    PRIMARY KEY (id)
    )";

    @mysql_query($query);

    questa è la pagina che dovrebbe contare
    <?
    $host = "localhost";
    $user = "miouser";
    $pass = "miapass";
    $nome_db = "my_user";
    $nome_tab = "nome tabelle";
    ---- e fino quì tutto bene-----

    @mysql_connect($host, $user, $pass);
    @mysql_select_db($nome_db);

    $query = "SELECT * FROM $nome_tab";
    $esegui_query = @mysql_query($query);
    while ($ris = @mysql_fetch_array($esegui_query)) {
    $accessi = $ris[0];
    $visite = $ris[1];
    $id = $ris[2];
    }

    session_start();
    if (!$_SESSION['visite']) {
    $_SESSION['visite'] = 1;
    $visite++;
    }
    $accessi++;
    $query = "UPDATE $nome_tab SET accessi = $accessi, visite = $visite WHERE id = $id;";
    @mysql_query($query);
    echo "Ci sono stati $accessi accessi e $visite visite a questa pagina...";
    ?>

    ma non funziona una volta che ho caricato le pagine e provo prima a richiamare la pagina delle tabella perchè venga creata nel mysql e poi provo a richiamare la pagina che deve contare mi conta solo il primo accesso e visita restano tutti e due a 1

    Perchè aiuto????

  2. #2
    Guest

    Predefinito

    perfavore nn post multipli!!

  3. #3
    Guest

    Predefinito hai ragione è stato un errore

    ma nessuno mi sa aiutare
    ???

  4. #4
    L'avatar di radioradianti
    radioradianti non è connesso Utente storico
    Data registrazione
    26-11-2003
    Residenza
    Roma
    Messaggi
    1,000

    Predefinito

    Dando uno sguardo veloce al codice(appena posso lo controllo meglio) posso dirti che :

    1----->
    Se utilizzi una sessione basata sui cokie

    session_start();

    deve trovarsi all'inizio della pagina, prima di ogni output (come riportato nel manuale).

    2----->
    if (!$_SESSION['visite']) {
    $_SESSION['visite'] = 1;
    $visite++;
    }
    La sessione aperta dall'utente "X" non è visibile dall'utente "Y", quindi :

    se "X" apre 5 volte la pagina , non è che permette ad "Y" di visualizzare 5, ma bensì "Y" visualizzerà all'inizio 1.

    3--------->
    Controlla sempre i valori di ritorno delle funzioni e i dati che richiedi al DB, magari con dei text (almeno per effettuare il Debug poi li togli).


    Ciao

    Leandro

    Happy Slack!

    E' on line il numero 12 di Topolinux - Totalmente rinnovato!
    TopoLinux è anche chat! irc.azzurra.org canale #topolinux
    La semplicità di questo dono è inversamente proporzionale alla qualità della nostra amicizia

  5. #5
    Guest

    Predefinito

    Dopo che l'hai creata, la tabella è ancora vuota. Quindi la UPDATE non andrà a buon fine, semplicemente perché non c'è niente da aggiornare. Da qualche parte dovrai inserire una riga con i valori iniziali.

    Inoltre, il tuo codice legge in un loop tutte le righe della tabella, senza controllare il valore di 'id'. Quindi alla fine arriverai sempre all'ultima riga. Non so che cosa vuoi fare esattamente, ma così com'è mi pare che abbia poco senso.

  6. #6
    Guest

    Predefinito

    ho prova a spostare la sessioni all'inizio , ma non basta.

    La mia intenzione era di fare un contatore di accessi e visite che usasse il mysql.....

    ma a questo punto sono in preda al panico tonnaer mi puoi aiutare nel correggerlo o cambiarlo lo script thx

    il mio scopo che contasse quante volte a visualizzato la pagina e quante connessioni sono state fatte

    Grazie

  7. #7
    Guest

    Predefinito

    Alla fine dello script che crea la tabella

    Codice PHP:
    $host = "localhost";
    $user = "user";
    $pass = "miapss";
    $nome_db = "my_user";
    $nome_tab = "nometabella";

    ---
    e fino qui è giusto -----

    @
    mysql_connect($host, $user, $pass);
    @
    mysql_select_db($nome_db);

    $query = "CREATE TABLE $nome_tb (
    accessi int(10) unsigned NOT NULL default '0',
    visite int(10) unsigned NOT NULL default '0'
    id tinyint(3) unsigned NOT NULL auto_increment,
    PRIMARY KEY (id)
    )"
    ;

    @
    mysql_query($query);
    aggiungi il seguente pezzo:

    Codice PHP:
    $query = "INSERT INTO $nome_tb VALUES (0, 0, 0)";

    @
    mysql_query($query);
    Così avrai inserito nella tabella una riga con tutti i contatori (e l'id) a zero, e l'UPDATE del secondo script almeno trova qualcosa da aggiornare.

  8. #8
    Guest

    Predefinito il codice come me lo hai messo lo ho scritto ma non mi crea la tabella nel db

    Il bello se così si puo dire è che non si crea neanche la tabella.....

    come mai azzo che palle aiuto.....

  9. #9
    Guest

    Smile Errore di sintassi

    la tabella non si crea perchè c'è un errore di sintassi

    Codice PHP:
    $host = "localhost";
    $user = "user";
    $pass = "miapss";
    $nome_db = "my_user";
    $nome_tab = "nometabella";

    ---
    e fino qui è giusto -----

    @
    mysql_connect($host, $user, $pass);
    @
    mysql_select_db($nome_db);

    $query = "CREATE TABLE $nome_tb (
    accessi int(10) unsigned NOT NULL default '0',
    visite int(10) unsigned NOT NULL default '0'
    id tinyint(3) unsigned NOT NULL auto_increment,
    PRIMARY KEY (id)
    )"
    ;

    @
    mysql_query($query);
    dovrebbe essere:

    visite int(10) unsigned NOT NULL default '0',

    manca la virgola finale

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •