• User Attivo

    suggerimento per controllo dati da query

    ciao a tutti,
    ho bisogno di fare un controllo incrociato per un gioco web.

    • prendo ip utente
    • lo inserisco nel database e inserisco la data di oggi
    • faccio un controllo se a quell'ip corrispondono più date

    facevo un count di quante volte lo stesso ip era inserito ma ho scoperto che sbagliavo, perchè il mio fine ultimo sarebbe controllare se ha giocato + di una volta in una stessa data... avete qualche suggerimento per fare questo ?

    posto il mio vecchio codice di controllo che ho scoperto che è sbagliato
    [PHP]$ip=$_SERVER['REMOTE_ADDR'];
    $data = date('Y-m-d');

    //controllo ip e data

    $query_insert_ip = "insert into controlla (ip, data) values ('$ip', '$data')";
    $esegui_insert_ip = mysql_query ($query_insert_ip, $con ) or die ("inserimento dati controllo non riuscito");

    $query_ip = "select * from controlla where ip='$ip'";
    $esegui_ip = mysql_query($query_ip, $con) or die ("aggiornamento modalita concorso in corso");

    $conteggio = mysql_num_rows($esegui_ip);

    while($riga_data = mysql_fetch_array($esegui_ip)){

    $data_estratta = $riga_data['data'];
    

    }

    //chiusura

    mysql_close($con);

    if($conteggio>=2){

    header ("location: errato.php");
    

    }[/PHP]


  • User

    una cosa così penso che va bene se ho capito che vuoi fare.
    [PHP]
    $sql = "SELECT * FROM controlla WHERE ip='".$ip."' AND data = '".date()."'";
    $result = mysql_query($sql);
    if(mysql_num_rows($result) == 1)
    {
    echo 'un sola volta';
    }
    elseif(mysql_num_rows($result) >= 1)
    {
    echo 'più di una volta';
    }
    else{
    echo 'nessuna delle due';
    }
    [/PHP]


  • User

    Oppure puoi utilizzare una query del genere:

    [PHP]$query = mysql_query("SELECT ip, data, COUNT(*) AS numeroaccessi FROM controlla GROUP BY data, ip HAVING numeroaccessi > 1");
    while ($dati = mysql_fetch_assoc($query)) {

    XXX gestionale che ti interessa XXX

    }[/PHP]

    Che ti estrae direttamente gli ip che giornalmente hanno fatto più di un accesso.


  • User Attivo

    Perfetto!!
    Grazie!!