aggiornare campi gia presenti in table mysql

iperboreo

Utente Attivo
21 Giu 2012
126
0
16
Ciao a tutti
io uso il seguente form per inserire i dati in una tabella mysql, e funziona benissimo.

vorrei fare in modo che se lo stesso cliente gia inserito, volesse reinserire i dati (nome e cognome)
sostituisca il vecchio nome e cognome, invece mi crea due volte i valori, e mi trovo un cliente con 2 nomi e 2 cognomi.

ho provato con UPDATE cliente SET nome='$_POST[nome]', cognome='$_POST[cognome]', MA assolutamente non va, devo correggerla.
Avevate gia postato un problema cosi, ma quella soluzione non mi funziona.

Sapreste consigliarmi per favore? grazie anticipatamente.




PHP:
 <?php
session_start();
 
  $id_utente = $_SESSION['id'];

  @include 'configa.php';

 $nome = @addslashes($_POST['nome']);
 $cognome = @addslashes($_POST['cognome']); 
 

if(isset($_POST['nome'])) { 
 $query = "INSERT INTO cliente 
(id_utente,nome,cognome) 

VALUES('$id_utente','$nome','$cognome')";


    $res = @mysql_query($query) or die (mysql_error());
    @mysql_close($cn);


}
?>
</font>
</p> 

<BR>
<BR>
<html>
<body>

<table border="0" cellspacing="2" cellpadding="1">

<br>
<tr>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
<td>Nome:</td><td><input type="text" name="nome" size="55" AUTOCOMPLETE="Off" value=""></td>
</tr>
<tr>
<td>Cognome:</td><td><input type="text" name="cognome" size="55" AUTOCOMPLETE="Off" value=""></td>
</tr>
<tr>
<td><p align="right"><input type="submit" type="submit"value="Conferma"style="background-color:yellowgreen"
 
/>


</td>
</tr>
</form>
 
Ultima modifica di un moderatore:
Piccole precisazioni

Devo fare un paio di precisazioni:

_______________________________________________

if(isset($_POST['nome'])) {}


questo così com'è non va proprio bene per un paio di motivi.. innanzitutto per i campi di tipo "text" va usata la clausola empty() che ti controlla se il campo è stato riempito, non isset(). Dopo di che se fai un controllo solo sull'input "nome" ti troverai in situazioni in cui sia stato inserito solo il nome e non il cognome e il tuo sistema lo prenderà per buono e inserirà il campo vuoto nel database, quindi io farei un controllo su tutti e due. Ti scrivo il codice corretto:

if(!empty($_POST['nome']) && !empty($_POST['cognome'])) {}


significa: se il campo nome non è vuoto e il campo cognome non è vuoto allora... ecc ecc

fossi in te aggiungerei anche un piccolo avviso del tipo "non hai completato tutti i campi" con un semplice else.

_______________________________________________________________

$query = "INSERT INTO cliente
(id_utente,nome,cognome)

VALUES('$id_utente','$nome','$cognome')";


questa è una semplice query di aggiunta, quindi per fare ciò che tu vuoi non basta.

Per aggiornare il nome devi fare una query che ti ricerca l'utente in questione nel db e che ti aggiorna il nome ed il cognome. Te la scrivo qui.

$query = "UPDATE cliente SET nome='".$_POST['nome']."', cognome='".$_POST['cognome']."' WHERE ID_cliente = '".$id_utente."'";

non so come tu abbia chiamato il campo dell'id utente quindi ho abbozzato un "ID_cliente".

probabilmente la query a te non andava perchè da come l'hai scritta tu vedo che è sbagliata.

Se hai ancora problemi non esitare a chiedere;)
 
Ciao e grazie innanzitutto,
funziona perfettamente, ma vorrei chiederti una cosa, non mi aspettavo funzionasse cosi.
pensavo che un UPDATE riempisse i campi anche all inizio quando sono vuoti, invece no,
devo creare due funzioni allora?
una compila i dati e una cambia i dati?
in questo caso è possibile creare un tasto (button) che sia disabilitato se esiston gia i dati inseriti?

nel senso ho due tasti, INSERISCI DATI e MODIFICA DATI,
se il cliente ha gia i dati inseriti non deve cliccare il tasti INSERISCI DATI, ma l altro, quindi si puo disabilitare un tasto, o meglio farlo sparire a seconda dei casi?

grazie infinite
 
autenticazione

Ciao e grazie innanzitutto,
funziona perfettamente, ma vorrei chiederti una cosa, non mi aspettavo funzionasse cosi.
pensavo che un UPDATE riempisse i campi anche all inizio quando sono vuoti, invece no,
devo creare due funzioni allora?
una compila i dati e una cambia i dati?
in questo caso è possibile creare un tasto (button) che sia disabilitato se esiston gia i dati inseriti?

nel senso ho due tasti, INSERISCI DATI e MODIFICA DATI,
se il cliente ha gia i dati inseriti non deve cliccare il tasti INSERISCI DATI, ma l altro, quindi si puo disabilitare un tasto, o meglio farlo sparire a seconda dei casi?

grazie infinite



La cosa si risolve con l'autenticazione. Inserisci i dati lo fai apparire quando non è stato eseguito l'accesso, modifica dati lo fai apparire quando l'utente ha eseguito l'accesso, anche perchè se il cliente non esegue l'autenticazione, cosa modifichi? su quale chiave ti appoggi?
 
La cosa si risolve con l'autenticazione. Inserisci i dati lo fai apparire quando non è stato eseguito l'accesso, modifica dati lo fai apparire quando l'utente ha eseguito l'accesso, anche perchè se il cliente non esegue l'autenticazione, cosa modifichi? su quale chiave ti appoggi?



AVREI RISOLTO COSI, USO UN VOSTRO VECCHIO ESEMPIO DEL FORUM, VORREI INSERIRE NELLA CONDIZIONE ECHO UN TASTO
CHE MI COLLEGHI ALLA PAGINA DI MODIFICA DATI, MA MI DA ERRORE, HO PROVATO E RIPROVATO MODIFICANDO LA SINTASSI
MA MI DA ERRORE.
inserisco una cosa del tipo: è sbagliata? ho provato in mille modi. grazie

<input type="button" name="modifica" value="location.href='modifica.php'" />


PHP:
<?php
$tempo = "piove";

//Costruisco la condizione
if ($tempo == "piove"){
  echo "QUI VORREI INSERIRE UN TASTO CHE MI COLLEGHI A MODIFICA.PHP";
}
?>
 
AVREI RISOLTO COSI, USO UN VOSTRO VECCHIO ESEMPIO DEL FORUM, VORREI INSERIRE NELLA CONDIZIONE ECHO UN TASTO
CHE MI COLLEGHI ALLA PAGINA DI MODIFICA DATI, MA MI DA ERRORE, HO PROVATO E RIPROVATO MODIFICANDO LA SINTASSI
MA MI DA ERRORE.
inserisco una cosa del tipo: è sbagliata? ho provato in mille modi. grazie

<input type="button" name="modifica" value="location.href='modifica.php'" />


PHP:
<?php
$tempo = "piove";

//Costruisco la condizione
if ($tempo == "piove"){
  echo "QUI VORREI INSERIRE UN TASTO CHE MI COLLEGHI A MODIFICA.PHP";
}
?>


beh la sintassi del bottone è alquanto sbagliata. Se l'hai trovato nel forum linkami la pagina che la segnalo agli amministratori

PHP:
<?php

$tempo = "piove";

if ($tempo == "piove"){

  echo '<input type="button" value="Modifica" onClick="location.href='modifica.php'">';
}

?>

ma ti consiglierei di usare il tag <a> modificandolo con i css in modo da sembrare un tasto. Non è opportuno utilizzare bottoni form senza il form
 
Ultima modifica di un moderatore:
beh la sintassi del bottone è alquanto sbagliata. Se l'hai trovato nel forum linkami la pagina che la segnalo agli amministratori

PHP:
<?php

$tempo = "piove";

if ($tempo == "piove"){

  echo '<input type="button" value="Modifica" onClick="location.href='modifica.php'">';
}

?>

ma ti consiglierei di usare il tag <a> modificandolo con i css in modo da sembrare un tasto. Non è opportuno utilizzare bottoni form senza il form

grzie Domenco, stasera provo, ma con i css non credo di averlo mai visto, faccio una ricerca per un tasto css, altrimenti uso il tuo tasto citato sopra. Grazie tantissimo, ciao
 
grazie Domenico, ma se volessi aggiungergi una scritta prima del tasto, tipo sotto?


PHP:
<?php 

$tempo = "piove"; 

if ($tempo == "piove"){ 


 QUI PUOI MODIGFICARE I TUOI DATI CLICCA IL TASTO:


  echo '<input type="button" value="Modifica" onClick="location.href='modifica.php'">'; 

} 

?>
 
non riesco proprio a farlo funzionare, anche senza il testo che vorrei aggiungere, mi da errore di virgole o punto e virgola.
grazie per l aiuto
 
niente, avrei risolto con un link anziche un tasto, non funzionava,

solo un ultima domanda se mi è concesso,
ho il tasto di modifica dati che esegue il cambio nel database, (un normale tasto submit)
voglio che quando confermo i dati e lui me li sostituisce nel database facesse un redirect ad una pagina.

come fare? stesso problema di prima?

GRAZIE ANCORA E COMUNQUE
 

Discussioni simili