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

    Aggiornare query ad ogni visita

    Salve, da poco mi sono inoltrato nell' sql.. Vorrei far in modo che ad ogni visita aumenta di 1 e quindi diventa una sorta di contatore visite.. Solo che seguendo la guida proposta qui non ci ho capito molto.. Avevo abbozzato questi codici:

    Codice PHP:
     <?
    $host
    ="localhost"
    $username=" USERNAME "
    $password="";
    $db_name=" NOME DB ";
    $db mysql_connect($localhost,$username,$password);

    mysql_select_db($db_name$db);

    IF 
    NOT EXIST ("CREATE TABLE `visite` (
    `numero_visite` AUTO_INCREMENT)"
    ); or die(mysql_error());
    END IF

    $select mysql_query("SELECT `numero_visite` FROM `visite` ");

    $count mysql_fetch_array($select);

    echo 
    $count;

    mysql_close($db);

    ?>
    Però come posso far in modo che aumenti di 1 ad ogni visita per poi contare a quale quota è arrivato?
    Se nel IF NOT EXIST inserisco il valore di uno, poi dopo la if lo riprendo così:

    Codice PHP:
     $select mysql_query("SELECT `numero_visite` FROM `visite` ");

    $count mysql_fetch_array($select);

    $count_fin $count++;

    e poi faccio l' update? 
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  2. #2
    Codice PHP:

    IF NOT EXIST ("CREATE TABLE `visite` (
    `numero_visite` AUTO_INCREMENT)"
    ); or die(mysql_error());
    END IF 
    escludo questo scrip sopra perche' non lo capisco.

    Per il resto considerando che la tabella visite dovesse avere un solo campo non avrebbe senso l'autoincrement perche' ci sarebbe un solo record che dovrebbe incrementarsi, dovresti fare prima l'update e poi la select.

    Codice PHP:

    mysql_query
    ("update visite set
                      numero_visite = numero_visite + 1"
    );

    mysql_query("select numero_visite from visite"); 

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Non è chiaro ciò che vuoi fare:
    1) se vuoi che la tabella contenga un unico record che incrementi di 1 ad ogni esecuzione di query:

    UPDATE $tbl_name SET visite=visite+1

    2) se invece vuoi più record (eventualmente per salvare anche altro, ad esempio l'IP del visitatore, data della visita) farai:
    Codice PHP:
    $query "INSERT INTO $tbl_name SET
    ip = '"
    .mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."',
    data_visita = NOW()"

    A questo punto potrai conoscere i visitatori totali
    SELECT COUNT(*) FROM $tbl_name

    Inoltre potrai fare anche query per conoscere i visitatori di oggi, di ieri, di questo mese, etc etc. Questa è la soluzione più corretta.

    3) se invece vuoi far incrementare di 1 un campo "simulando" l'AUTO_INCREMENT devi eseguire due query:
    Codice PHP:
    $query "SELECT MAX(visite) AS massimo FROM $tbl_name";
    $result mysql_query($query) or die (mysql_error());
    $row mysql_fetch_array($result);
    $auto_increment $row['massimo'] +1;

    $query_2 "INSERT INTO $tbl_name SET visite=$auto_increment";
    $result_2 mysql_query($query_2) or die(mysql_error()); 
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  4. #4
    oly quindi così:

    Codice PHP:
     <?
    $host
    ="localhost"
    $username=" USERNAME "
    $password="";
    $db_name=" NOME DB ";
    $db mysql_connect($localhost,$username,$password);

    mysql_select_db($db_name$db);

    IF 
    NOT EXIST ("CREATE TABLE `visite` (
    `numero_visite` AUTO_INCREMENT)"
    ); or die(mysql_error());
    END IF

    $select mysql_query("UPDATE `visite` SET `visite` = visite+1");

    $count mysql_fetch_array($select);

    echo 
    $count;

    mysql_close($db);

    ?>
    Una cosa.. per la creazione della tabella ho scritto in modo errato vero? Avevo letto da una parte così, probabilmente era sbagliato.. Ovvero se la tabella non esiste la crea.. Se invece ometto quei codici la tabella se non esiste si crea automaticamente? Gli apici in visite+1 come vanno? Per poi vedere a quale 'quota' è arrivata la query va bene mysql_fet_array ?
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  5. #5
    la tabella creala tramite phpmyadmin e chiudi la faccenda del CREATE...
    Poi farai:
    Codice PHP:
     <?php
    // settiamo le variabili di connessione 
    $host="localhost";  
    $username=" USERNAME ";  
    $password=""
    $db_name=" NOME DB "

    //ci connettiamo e selezianiamo il database (la funzione mysql_error ci dirà se sbagliamo qualcosa)
    $db mysql_connect($localhost,$username,$password) or die(mysql_error()); 
    mysql_select_db($db_name$db) or die(mysql_error()); 

    // SEI SICURO CHE IL CAMPO E LA TABELLA HANNO LO STESSO NOME?
    // ... in ogni modo questa query esegue la modifica
    $modifica mysql_query("UPDATE visite SET visite = visite+1") or die(mysql_error()); 

    // ora eseguiamo la selezione
    $query_selezione "SELECT visite FORM visite";
    $esegui_selezione mysql_query($query_selezione) or die(mysql_error());
    $count mysql_fetch_array($esegui_selezione); 
    echo 
    $count['visite']; 

    // chiudi la connessione
    mysql_close($db); 

    ?>
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  6. #6
    Sì ma mi serve la creazione della tabella se non esiste, dato che deve finire in un plugin che tutti possono usare e che quindi deve esser facile da usare, non posso dire alle persone di creare le tabelle tramite phpmyadmin.. Comunque sapevo che bisognava usare le apici, buh, grazie comunque
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  7. #7
    Originariamente inviato da 0-c00l
    Comunque sapevo che bisognava usare le apici, buh, grazie comunque
    in casi particolari... che io eviterei...

    Originariamente inviato da 0-c00l
    deve finire in un plugin che tutti possono usare
    tuo vuoi creare un plugin per utilizzo al pubblico...??

    Te lo dico con onestà... impara prima le basi di php e mysql, studiale per un pò...

    Cmq sia... in tal caso fai un file istal.php in cui crei la tabella... senza che fai pasticci...
    Codice PHP:
    // inclusione del config
    include("file_di_configurazione_con_parametri_di_connessione.php");

    // connessione
    $db mysql_connect($localhost,$username,$password) or die(mysql_error());  
    mysql_select_db($db_name$db) or die(mysql_error());

    // creazione tabella
    $query_create "CREATE TABLE IF NOT EXISTS visite (numero_visite int(11))";
    mysql_query($query_create) or die(mysql_error()); 
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  8. #8
    Originariamente inviato da oly1982
    in casi particolari... che io eviterei...


    tuo vuoi creare un plugin per utilizzo al pubblico...??

    Te lo dico con onestà... impara prima le basi di php e mysql, studiale per un pò...

    Cmq sia... in tal caso fai un file istal.php in cui crei la tabella... senza che fai pasticci...
    Codice PHP:
    // inclusione del config
    include("file_di_configurazione_con_parametri_di_connessione.php");

    // connessione
    $db mysql_connect($localhost,$username,$password) or die(mysql_error());  
    mysql_select_db($db_name$db) or die(mysql_error());

    // creazione tabella
    $query_create "CREATE TABLE IF NOT EXISTS visite (numero_visite int(11))";
    mysql_query($query_create) or die(mysql_error()); 
    Il php lo conosco, ma è col mysql che litigo.. E' diversa la cosa, non mi entra in testa, comunque ho scritto così:

    Codice PHP:
    <?php
    // settiamo le variabili di connessione 
    $host="localhost";  // LASCIARE COSÌ
    $username=" USERNAME ";
    $password=" PASSWORD "
    $db_name=" NOME DB ";

    //ci connettiamo e selezianiamo il database (la funzione mysql_error ci dirà se sbagliamo qualcosa)

    $db mysql_connect($localhost,$username,$password) or die(mysql_error()); 

    mysql_select_db($db_name$db) or die(mysql_error()); 

    $query_create "CREATE TABLE IF NOT EXISTS visite (numero_visite int(11))";
    mysql_query($query_create) or die(mysql_error());

    $modifica mysql_query("UPDATE visite SET numero_visite = numero_visite+1") or die(mysql_error()); 

    // ora eseguiamo la selezione

    $query_selezione "SELECT numero_visite FROM visite";
    $esegui_selezione mysql_query($query_selezione) or die(mysql_error());
    $count mysql_fetch_array($esegui_selezione); 
    echo 
    $count['numero_visite']; 

    // chiudi la connessione

    mysql_close($db); 

    ?>
    Ma non appare l' echo e non da errori, sono sicuro che i dati per connettersi sono giusti dato che se rimuovo la creazione della tabella dice che non esistono tabelle con quel nome.. PS: HO cambiato la query visite in numero_visite dato che l' avevi cambiata anche tu nella creazione della tabella..
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  9. #9
    crei la tabella ma non inserisci alcun record..... hai nulla da modificare e selezionare.

    fai la insert almeno di un record.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    EDIT: RISOLTO INSERENDO

    Codice PHP:
    mysql_query("INSERT INTO visite (numero_visite) VALUES (1)"); 
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

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.