Modificare dati in un campo della tabella

Daniele Rapinesi

Utente Attivo
7 Gen 2014
60
0
0
Buongiorno a tutti,
ho una pagina che mostra i dati contenuti in una tabella
ES:

Mario
Rossi
Via Roma 20
Lavinio
Italia

Voglio far si che l'utente Mario Rossi possa modificare alcuni dati da lui inseriti, esempio cambiare soltanto l'indirizzo.
Io ho creato un form che mostra i dati esistenti, a fianco di ogni campo ho messo un input type per inserire l'eventuale modifica ed ho inviato i dati inseriti ad una pagina php che dovrebbe aggiornare il DB.
Con la query UPDATE inserisco i dati nel db, ma se l'utente ha lasciato dei campi vuoti, quelli vanno a sostituire le informazioni nel database.
Come posso fare per modificare solo i dati inseriti dall'utente (in questo caso l'indirizzo)senza cancellare gli altri ??

Grazie in anticipo e buona giornata !!
Daniele
 
ciao
puoi provare con il seguente schema, al massimo non funziona
guarda che ho messo i nomi a caso
PHP:
<?php
//.....
$nome=trim($_POST['nome']);
$cognome=trim($_POST['cognome']);
$indirizzo=trim($_POST['indirizzo']);
$citta=trim($_POST['citta']);
$nazione=trim($_POST['nazione']);
//e altri controlli
//e immagino che tu prelevi anche l'id dell'utente
if($nome != ""){$dati[]="nome ='".$nome."'";}
if($cognome != ""){$dati[]="cognome ='".$cognome."'";}
if($indirizzo != ""){$dati[]="indirizzo ='".$indirizzo."'";}
if($citta != ""){$dati[]="citta ='".$citta."'";}
if($nazione != ""){$dati[]="nazione ='".$nazione."'";}
if(!isset($dati) || !is_array($dati)){
	//tutti gli input sono vuoti
	//dai messaggio di errore e rimandi dove vuoi
}else{
	//almeno uno è pieno
	$modifica="UPDATE tabella SET ".implode(', ',$dati)." WHERE id_utente=$id";
	//ecc.....
}
//....
?>
 
Ok grazie per il consiglio ma ho risolto in questo modo:

$nome = $_POST['nome'];

$query = "SELECT * FROM nometabella WHERE idutente = '$idutente'";
$res = mysql_query($query);
if (mysql_num_rows($res)>0){
$row = mysql_fetch_assoc($res);
$old_nome = $row['palestra'];
}

if ($old_nome !== $nome) {
$query = "UPDATE nometabella SET nome='$nome' WHERE idutente = '$idutente'";
$res = mysql_query($query);
}

e cosi tutto funziona correttamente ....

Grazie ancora!! ... tanto fra poco avrò probabilmente una domanda un po' più difficile ...
 

Discussioni simili