- Home
- Categorie
- Coding e Sistemistica
- PHP
- Se un campo è vuoto non modificare il db Salve! Ho un dubbio.. Da un form di inserim
-
Se un campo è vuoto non modificare il db Salve! Ho un dubbio.. Da un form di inserim
Salve! Ho un dubbio..
Da un form di inserimento dati (nome, cognome, email) che va a scrivere nel db, vorrei fare un controllo, ovvero: Se quando modifico cambio sia nome e cognome, lasciando un campo vuoto (per esempio email), come posso fare per non andare a modificare quel campo nel db? Lasciandolo con il vecchio record?!
Tutto questo vorrei farlo in PHP!
Grazie per l'attenzione, a presto. Buona serata!
-
Ciao fagottino,
devi fare una cosa del genere:
[php]
$sql = '';// Query dinamica
if($email != '')
$sql .=",campo2 = '$email'";mysql_query("
UPDATE tabella SET
campo1 = 'valore'
$sql
WHERE .....
");
[/php]
-
Buongiorno TheDarkIta !
Ho provato a fare quello che hai postato tu, ma mi da errore sulla query.. Quindi ho pensato di fare il controllo in questo modo:
[php]
if (!empty($email)) {
$email=(GET_magic_quotes_gpc()) ? $_POST['email'] : addslashes($_POST['email']);
} else {
$email = 'NULL';
}
[/php]Ed eseguendo la query così
[php]
$updateSQL = sprintf("UPDATE user SET nome=%s,cognome=%s,email=%s,user=%s,pwd=MD5(%s) WHERE id='$id_user'");
[/php]Solo che nel campo "email", se è vuoto, mi inserisce il testo NULL ! Penso che il controllo vada bene.. E' solo che non ricordo come dirgli di non modificarmi il campo se è vuoto
Grazie per l'attenzione e per la risposta, a presto. Antonio.
-
Per non modificare i campi vuoti devi fare come ti ho scritto io sopra, per generare dinamicamente la query.
-
Mi dispiace.. Ma non mi è totalmente chiaro il tuo esempio :
Non riesco a capire come fai ad inserire una variabile in un "update" ... Potresti essere un pochino più chiaro? Chiedo scusa per la mia spiccata ignoranza.. Ma sembra che non ci arrivo proprio!!
Cordialmente, Antonio.
-
Devi fare cosi;
[php]
<?php
// Query dinamica
if($nome != '')
$sql = isset($nome) ? $sql.",nome = '$nome'" : "nome = '$nome'";if($cognome != '')
$sql = isset($cognome) ? $sql.",cognome = '$cognome'" : "cognome = '$cognome'";if($email != '')
$sql = isset($email) ? $sql.",email = '$email'" : "email = '$email'";if($user != '')
$sql = isset($user) ? $sql.",user = '$user'" : "user = '$user'";if($pwd != '')
$sql = isset($pwd) ? $sql.",pwd = '".md5($pwd)."'" : "pwd = '".md5($pwd)."'";if(isset($sql))
mysql_query("
UPDATE user SET $sql WHERE id='$id_user'
");
?>
[/php]
-
Salve!!
Innanzitutto volevo ringraziarti per le risposte Thedarkita! Però forse la mia "scarsa" conoscenza in php non mi permetteva di riuscire a far funzionare il tuo script (anche copiandolo ed incollandolo) per questo, ho risolto in altro modo.
Posto il codice:
[php]
//controllo se il campo email è vuoto
if (empty($_POST['email'])) {
//se è vuoto eseguimi la query senza il campo email, quindi lo lascia invariato
$updateSQL = sprintf("UPDATE user SET nome=%s,cognome=%s,user=%s,pwd=MD5(%s) WHERE id='$id_user'",
GetSQLValueString($nome, "text"),
GetSQLValueString($cognome, "text"),
GetSQLValueString($user, "text")
GetSQLValueString($pwd, "text")
);
$Result1 = mysql_query($updateSQL, $link) or die(mysql_error());
} else {
//altrimenti se il campo email è stato riempito
$email= ($_POST['email']);
$email=(GET_magic_quotes_gpc()) ? $_POST['email'] : addslashes($_POST['email'])
//eseguimi la query anche con il campo email, andandolo a modificare
$updateSQL = sprintf("UPDATE user SET nome=%s,cognome=%s,mail=%s,user=%s,pwd=MD5(%s) WHERE id='$id_user'",
GetSQLValueString($nome, "text"),
GetSQLValueString($cognome, "text"),
GetSQLValueString($mail, "text"),
GetSQLValueString($user, "text"),
GetSQLValueString($pwd, "text")
);
$Result1 = mysql_query($updateSQL, $link) or die(mysql_error());
}
[/php]Forse sarà più incasinato in questo modo il codice, ma a me funziona perfettamente.
Buona giornata a tutti e spero che possa risultare utile a qualcuno!!