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

    Aggiornamento dati in un database mysql

    Ciao,
    volevo sapere se c'era un modo per far si che, un utente che ha inserito un'articolo nella tabella "articoli" di un database mysql, in futuro se vuole cambiare l'articolo lo aggiorni a quello già esistente senza creare una nuova riga e senza crea una nuova chiave id, ma semplicemente cancellando l'articolo precedente aggiornandolo con quello nuovo.
    Secondo voi si può? Se si potete indicarmi "cortesemente" come si fà con il rispettivo codice?
    Grazie

  2. #2
    mai sentito parlare di UPDATE...?

    per sapere come si usa.. basta una ricerchina su google/forum/documentazione mysql


  3. #3
    Ciao,
    Ho trovato qualcosa sull'update...
    Siccome vorrei creare una situazione dove l'utente inserendo nome e password può modificare il suo articolo e ho fatto così:
    Codice PHP:
    $query "UPDATE news SET modifica= '$modifica' WHERE nome = '$nome' and password = '$password'; 
    Non so se vada bene...cmq vorrei creare in fine un sistema che se l'utente non aggirna l'articolo poichè ha errato i parametri gli da come messaggio "il suo articolo non è stato aggiornato poichè ha inserito password e nome errati".
    Si può fare una cosa del genere? Se si mi illustrate come si fa?
    Grazie

  4. #4
    in linea dimassima va bene..... poi non conoso a ondo la logica del tuo script...

    per dargliil messaggio di errore puoi controllare il numero di righe interessate dalla query con mysql_affected_row()
    http://it2.php.net/manual/it/functio...ected-rows.php
    ..se le righe interessate sono 0... chiaramente non è stato trovato un utente con quel nome e quella password....

    poi se vuoi un controllo più fine, fai una query di select prima, e provi a selezionare la password memorizzata per quell'utente.. se questa query non restituisce nulla, è sbagliato il nome utente.. se restituisce una password la confronti con quella immessa.. e se diversa chiaramente dai eerrore per la password.. altrimenti tutto ok e procedi a afre l'update.

    Scegli tu

  5. #5
    Ciao,
    Si penso che faro nel secondo modo, è un buona idea...
    Cmq grazie per l'interessamento e per le spiegazioni chiare..
    Buona nottata

  6. #6
    Ciao,
    Io ho fatto così e va benissimo...
    Codice PHP:
    <?
    include("config.inc.php");
    $db mysql_connect($db_host$db_user$db_password$db_name);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name$db)
    or die (
    "Erore nella selezione del database. Verificare i parametri nel file config.inc.php");
    /******Inizio query*******/
    $query1 "Select * from news WHERE nome = '$nome'" 
    $dbResult1 mysql_query($query1$db) or die (mysql_error());
    $num_righemysql_num_rows($dbResult1); // Salva il numero di righe trovate 
    if ($num_righe == 0){ print "Il nome da lei selezionato non è registrato";
    } else {    
    /*******prima aperta********/
    $query1 "Select * from news WHERE password = '$password'" 
    $dbResult1 mysql_query($query1$db) or die (mysql_error());
    $num_righemysql_num_rows($dbResult1); // Salva il numero di righe trovate 
    if ($num_righe == 0){ print "La password dai lei inserita non è valida";
    } else {    
    /*********seconda aperta*********/
    $query "UPDATE news SET modifica= '$modifica' WHERE nome = '$nome'";
    if (
    mysql_query($query$db))
    echo 
    "Il suo articolo è stato aggiornato";
    else
    echo 
    "Errore durante la modifica";
    mysql_close($db); 
    }        
    /*********seconda chiusa********/
    }       /*********prima chiusa********/
    ?>
    Non so se ho fatto precisamente come mi hai indicato tu... :master:
    Penso che vada bene no?
    grazie

  7. #7
    meglio così:
    Codice PHP:
    <?php
    include("config.inc.php");
    $db mysql_connect($db_host$db_user$db_password$db_name)or die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name$db)
    or die (
    "Erore nella selezione del database. Verificare i parametri nel file config.inc.php");
    /******Inizio query*******/
    $query1 "Select password from news WHERE nome = '$nome'" 
    $dbResult1 mysql_query($query1$db) or die (mysql_error());
    if(!
    mysql_num_rows($dbResult1)){
    print 
    "Il nome da lei selezionato non è registrato";
    exit();
    }
    else
    {
    $riga mysql_fetch_assoc($dbResult1);
    if( 
    $riga['password'] != $password) {
     print 
    "La password dai lei inserita non è valida";
     exit();
     }
    }

    $query "UPDATE news SET modifica= '$modifica' WHERE nome = '$nome'";
    if (
    mysql_query($query$db))
    echo 
    "Il suo articolo è stato aggiornato";
    else
    echo 
    "Errore durante la modifica";
    mysql_close($db); 
    ?>
    se non ci sono errori di battitura..

  8. #8
    Ok grazie...
    Buona nottata

  9. #9
    fermo restando che probabilmente è progettato male il database se in una tabella chiamata news hai username e password cioè.. di sicuro è progettato male se per ogni utente puoi avere più record in news...

    ma questo influisce più sull'efficienza e altri aspetti che non sulla logica nuda e cruda.... quindi puoi documentarti con calma in merito se stai solo "giocando con php" per imparare (tutti i primi tempi, se nessuno gliel'ha spiegato, fanno un'unica tabellacon tutti i dati su una riga )

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.