Vai al contenuto

PHP+Mysql - non aggiornare campo vuoto


imart

Messaggi raccomandati

Ciao ragazzi e' la prima volta che mi trovo alle prese con questo tipo di codice...

Ho creato un sito con registrazione e la possibilita' di modificare il proprio profilo ma qualcosa non mi torna...

Quando clicco "Modifica profilo" mi si presentano i campi modificabili, che sono 5.

-Password

-Citta'

-Provincia

-Musica Preferita

-Avatar

Ma se io cambio solo la password e gli altri campi li lascio vuoti, diventano vuoti nel DB...

Il codice che dovrebbe controllare il tutto e' il seguente... non fateci caso non sono esperto...

<?php
$nuova_pwd = md5($nuova_password);

if ($conferma_password != $nuova_password) { echo "Le password non combaciano!"; }
elseif ($conferma_email != $nuova_email) { echo "Le E-mail non combaciano!"; } 
else { 
if (isset($_POST['nuova_password']));
if (isset($_POST['conferma_password']));
if (isset($_POST['nuova_email']));
if (isset($_POST['conferma_email']));
if (isset($_POST['nuovo_avatar']));
if (isset($_POST['musica_preferita']));

$modifica_profilo = "UPDATE utenti SET password='$nuova_pwd',email='$nuova_email',avatar='$nuovo_avatar',musica_preferita='$musica_preferita' WHERE username='$username'";
$result = mysql_query($modifica_profilo);
echo "Profilo aggiornato!";
}
?>

Belli come la vita, neri come la morte.

FOLGORE!!!

Link al commento
Condividi su altri siti

Ciao, spero di aver interpretato bene il tuo post.. ma ti "azzera" gli altri campi anche se passi alla query solo i campi da modificare? cioè se tu vuoi modificare ad esempio solo la password, passi come parametro alla query solo la nuova pwd o anche gli altri campi vuoti?

Comunque credo che tu debba recuperare tutti i campi(in modo da presentare all'utente il form già compilato con i valori attuali) e ripassare il tutto alla query, quindi campi aggiornati e non...

Link al commento
Condividi su altri siti

ma è ovvio.. devi fare una cosa..

devi mettere un select dove vuoi modificare i campi.. aspe ti scrivo il codice:

<?php

$quert = "SELECT * FROM utenti SET password='$nuova_pwd',email='$nuova_email',avatar='$nuovo_avatar',musica_preferita='$musica_preferita' WHERE username='$username'";

?>

<form name="" src="">

//il form name e src lo devi scrivere tu.. perchè io non so il nome del tuo file.. e ne tantomeno se lo stesso file esegue l'update..

//qui sotto con il select ho preso i dati dal database.. se l'utente vuole modificarli.. basta ch eli cambia.. altrimenti li lascia cosi.. e nel database //nn perdi nulla..

Password: <input name="nuova_password" value="<?= $quert['password'] ?>" />

Conferma Password: <input name="conferma_password" value="<?= $quert['password'] ?>" />

Email: <input name="nuova_email" value="<?= $quert['email'] ?>" />

Conferma Email: <input name="conferma_email" value="<?= $quert['email'] ?>" />

guardati il codice.. e spero tu riesca a risolvere il problemuccio..

Ciao ^^

Link al commento
Condividi su altri siti

ma è ovvio.. devi fare una cosa..

devi mettere un select dove vuoi modificare i campi.. aspe ti scrivo il codice:

<?php

$quert = "SELECT * FROM utenti SET password='$nuova_pwd',email='$nuova_email',avatar='$nuovo_avatar',musica_preferita='$musica_preferita' WHERE username='$username'";

?>

<form name="" src="">

//il form name e src lo devi scrivere tu.. perchè io non so il nome del tuo file.. e ne tantomeno se lo stesso file esegue l'update..

//qui sotto con il select ho preso i dati dal database.. se l'utente vuole modificarli.. basta ch eli cambia.. altrimenti li lascia cosi.. e nel database //nn perdi nulla..

Password: <input name="nuova_password" value="<?= $quert['password'] ?>" />

Conferma Password: <input name="conferma_password" value="<?= $quert['password'] ?>" />

Email: <input name="nuova_email" value="<?= $quert['email'] ?>" />

Conferma Email: <input name="conferma_email" value="<?= $quert['email'] ?>" />

guardati il codice.. e spero tu riesca a risolvere il problemuccio..

Ciao ^^

si infatti l'ho pensato anche io ieri di mettere come values il valore attuale cosi si inserisce sempre lo stesso sempre se non lo cambia...

Grazie a tutti e due, in questo modo so gia' che risolvo :rolleyes:

Belli come la vita, neri come la morte.

FOLGORE!!!

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...