Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [php/mysql]verifica esistenza e modifica di un campo

    Ciao a tutti!
    Ho un problema con queste query:
    Codice PHP:
    <?
    require_once('../../site/config.php');
    $my=mysql_query("SELECT * FROM `game` WHERE number='".$_GET['user']."'");
    $result mysql_fetch_array($my);
    if(!
    $result)$query=mysql_query("INSERT INTO `game` (`x` ,`y` ,`number`)VALUES ( '".$GET['x']."', '".$GET['y']."', '".$GET['user']."')");
    $insert mysql_query("UPDATE `game` SET y='".$_GET['y']."' WHERE number='".$_GET['user']."'");
    $insert2 mysql_query("UPDATE `game` SET x='".$_GET['x']."' WHERE number='".$_GET['user']."'");
    ?>
    Praticamente, ogni volta che un utente si connette utilizza un numero. La pagina PHP dovrebbe controllare se questo numero esite nel database, in questo caso modifica le variabili x e y con quelle fornite dall'utente, se il numero non esiste nel database, viene creata una nuova riga, con i dati forniti. Questo almeno è ciò che dovrebbe succedere, infatti il databse agiunge ogni volta una nuova riga, con tutti i valori settati a zero...
    Cosa c'è che non va nel mio codice?
    Grazie in anticipo!

  2. #2
    probabilmente sono arruginito io...

    ma if(!$result) che intendi con questo? o_O

  3. #3
    Grazie, forse è proprio questo l'errore, credevo che in questo modo si controllasse se l'array contiene valori, probabilmente però mi sbaglio.. Ora provo a cambiare...

  4. #4
    al posto di

    Codice PHP:
    $result mysql_fetch_array($my); 
    puoi provare a vedere se ha trovato una riga

    Codice PHP:
    <? 
    require_once('../../site/config.php'); 
    $my=mysql_query("SELECT * FROM `game` WHERE number='".$_GET['user']."'"); 
    //$result = mysql_fetch_array($my); 
    if(mysql_num_rows($my) != 0$query=mysql_query("INSERT INTO `game` (`x` ,`y` ,`number`)VALUES ( '".$GET['x']."', '".$GET['y']."', '".$GET['user']."')"); 
    $insert mysql_query("UPDATE `game` SET y='".$_GET['y']."' WHERE number='".$_GET['user']."'"); 
    $insert2 mysql_query("UPDATE `game` SET x='".$_GET['x']."' WHERE number='".$_GET['user']."'"); 
    ?>
    in pratica se trova almeno una riga nella prima query (select) effettua l'insert.

  5. #5
    Grazie, ma niente...
    Non viene inserito nel db assolutamente nulla.
    Comunque, non mi sono spiegato molto bene: l'insert avviene quando NON vengono trovate righe, perchèl'utente non è ancora inserito nel db...
    In ogni caso, anche modificando la query in questo modo, il risultato è uguale, continua ad aggiungere righe con tutti i valori settati a 0.

    Credo di aver capito,comunue, che c'è un probelema con le variabili $_GET, se infatti utilizzo dei normali valori nella query, questa viene eseguita.
    L'url, comuque, più o meno è questo:
    può darsi che questo provochi dei problemi al database? Forse le variuabili di questo tipo non possono essere inserite nel database(con tutti i campi di tipo INT), che le sostituisce con 0?

  6. #6
    trasformale prima, potrebbero essere gli apici.
    Codice PHP:
    $user $_GET['user'];
    $x $_GET['x'];
    $y $_GET['y']; 

  7. #7
    Grazie mille!! Adesso funziona tutto perfettamente!!

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.