Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Mysql UPDATE ed Insert

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    13

    Mysql UPDATE ed Insert

    salve sto creando uno script php
    Codice PHP:
        mysql_select_db("$db_name",$connessione); 
            
    $titolo $nick;
            
    $descrizione $punti;
                    
    $sql "Update news SET
                    nick= '
    $nick',
                    punti= '
    $punti'
                    "
    ;
     
            if (@
    mysql_query($sql)) 
     
                {
     
                echo 
    '

    Punteggio Aggiornato</p>'
    ;
     
                }
     
                else {
     
                    echo 
    'Lol';
     
                        } 
    Come si vede chiaramente, ad ogni avanzamento viene inserito il punteggio ed aggiornato del tipo
    Nick nuovo punteggio.
    Ma quando l'utente si connette per la prima volta?
    come faccio a fare in modo che se la query $nick non esiste, allora viene inserita nella tabella classifica, altrimenti viene fatto solo un aggiornamento?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di DjBart
    Registrato dal
    Jan 2009
    Messaggi
    346
    allora vediamo se ho capito bene , se la variabile $nick non esiste nel database la deve creare giusto ?? sè esiste continua con l'aggiornamento dei punti giusto ?

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Tu avrai una sola entry nel db? non credo, giusto?
    Come fai tu verranno modificate tutte le entry presenti perché non usi la clausola WHERE, quindi la tua query farà l'update su tutte le righe.

    Dovresti rivedere come gestire questa cosa.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    13
    no... xke aggiornate tutte le query..
    Codice PHP:
     $sql "Update news SET  nick= '$nick',  punti= '$punti
    Ad ogni persona loggata viene affidato un nick, ed ad ogni aggiornamento verrebbe aggiornato solo quel nick e quel punteggio.
    Il nick essendo sempre uguale non cambia e verrebbe cambiato solo il punteggio...

    Lo scopo e fare in modo che un utente che si sia appena registratio, vada a creare una nuova tabella del tipo:

    Codice PHP:
     $sql "INSERT INTO news SET  nick= '$nick',  punti= '0' 
    mentre se la tabella nick gia esiste si fa solo un update quando cresce di punteggio

  5. #5
    Originariamente inviato da mcstorm
    no... xke aggiornate tutte le query..
    Codice PHP:
     $sql "Update news SET  nick= '$nick',  punti= '$punti
    Ad ogni persona loggata viene affidato un nick, ed ad ogni aggiornamento verrebbe aggiornato solo quel nick e quel punteggio.
    Il nick essendo sempre uguale non cambia e verrebbe cambiato solo il punteggio...
    Forse non hai colto il suggerimento di Alhazred. Come fai tu scrivi lo stesso nick e lo stesso punteggio su tutti i record della tabella. Devi inserire una clausola WHERE.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    13
    ragazzi questo e il mio primo script php un po piu complicato, qualche suggerimento in piu sarebbe molto d'aiuto xd

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    13
    risolto con l'aggiunta di un codice nel login

    Codice PHP:

            $query 
    "SELECT COUNT(titolo) AS count 
                        FROM news 
                        WHERE nick='"
    .mysql_real_escape_string($nick)."' 
                        LIMIT 1"
    ;
            
    $result mysql_query($query) or die(mysql_error());
            
    $row mysql_fetch_array($result);
            if(
    $row['count']==1){
                echo
    'ci sta';
                }
            else{
                    
    mysql_select_db("$db_name",$connessione); 
                    
    $sql "insert into news SET
                    nick = '
    $nick',
                    punti = '0'
                    "
    ;
     
            if (@
    mysql_query($sql)) 
     
                {
     
                echo 
    '

    query creata</p>'
    ;
     
                }
     
                else {
     
                    echo 
    'Ops ';
     
                        }
                
            } 

  8. #8
    Utente di HTML.it L'avatar di danlupo
    Registrato dal
    Jul 2009
    Messaggi
    314
    mcstorm
    per inserire un nuovo utente va bene quello che hai scritto ma, come ti suggeriscono gli altri utenti, un Update senza condizione Where aggiorna tutti i nick della tabella mentre per funzionare correttamente ed assegnare il punteggio solo all'utente interessato devi usare il WHERE in pratica:

    SE Il Nick non esiste allora lo creo

    Codice PHP:
    "insert into news SET  nick = '$nick',  punti = '0'                 " 
    altrimenti lo aggiorno

    Codice PHP:

    "Update news SET  nick= '$nick',  punti= '$punti' WHERE nick='$nick'"

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    13
    grazie mille, ora aggiungo questa condizione, anche se dai test andava tutto bene e veniva aggiornato solo il nick interessato... forse perche lo avevo dichiarato ( ? )
    Codice PHP:
    $nick $login->get_username(); 
    Altrimenti non riesco a spiegarmi perche funziona tutto alla perfezione ed essendo agli inizi, meglio cercare di capire tutti i funzionamenti senza pensare, bhe funziona meglio cosi, senza saperche realmente funziona xd

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    13
    chiedo scusa e ringrazio danlupo, satifal e Alhazred che hanno cercato per due ore di farmi capire hihihi
    io facevo i test con un unico nick nel database, in effetti senza where creando un nuovo utente, tutti i record si trasformavano nello stesso nick e stesso punteggio hihihi
    Ora credo sia perfetto il mio primo script.
    Grazie mille wagliuni xd

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.