script per modifica di una tabella mysql

donadioema

Nuovo Utente
7 Lug 2010
12
0
0
Salve necessito di uno script in php che vada a modificare una tabella esistente mysql e che aggiorni tale tabella con i nuovi valori che gli fornisco tramite un form html.
struttura db
db:soci
tabella: anagrafica_soci

colonne:
id_socio
cognome
nome
indirizzo
codice_comune
data_nascita
telefono1
telefono2

Nel primo elemento del form prendo come input il valore id_socio auto incrementale cosi da fornirlo alla query php

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="Content-Language" content="it">
  <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
  <title>Modifica Dati</title>

</head>
<body>
<form action="ins1.php" name="Invio dati" target="_parent" enctype="application/x-www-form-urlencoded" method="post">
<p>Modifica Dati&nbsp;</p>

Id da Modificare<br>
  <br>
  <input maxlength="5" name="id_socio"><br>
  <br>
<p>Cognome</p>
<input maxlength="20" name="cognome"><br>
  <br>
Nome<br>
  <br>
  <input maxlength="20" name="nome"><br>
  <br>
Indirizzo<br>
  <br>
  <input maxlength="30" name="indirizzo"><br>
  <br>
Comune<br>
  <br>
  <input maxlength="15" name="codice_comune"><br>
  <br>
Data di Nascita<br>
  <br>
  <input maxlength="15" name="data_nascita"><br>
  <br>
Telefono 1<br>
  <br>
  <input maxlength="15" name="telefono1"><br>
  <br>
Telefono 2<br>
  <br>
  <input maxlength="15" name="telefono2"><br>
  <br>
  <p align="left"><input value="Inserisci" name="B1" type="submit"></p>
</form>

<br />
</body>

adesso il codice php che legge gli input e dovrebbe modificare la tabella con la qeury update
PHP:
<?php 

$descrizione  = $_POST['id_socio'];
$descrizione1 = $_POST['cognome'];
$descrizione2 = $_POST['nome'];
$descrizione3 = $_POST['indirizzo'];
$descrizione4 = $_POST['codice_comune'];
$descrizione5 = $_POST['data_nascita'];
$descrizione6 = $_POST['telefono1'];
$descrizione7 = $_POST['telefono2'];

$connessione = mysql_connect("localhost","donadioema","bamba00")or die("Connessione non riuscita: " . mysql_error());
   print ("Connesso con successo");

mysql_select_db("soci", $connessione) or die("Errore nella selezione del database");


$query = "UPDATE anagrafica_soci WHERE id_socio=$descrizione";    
if ($query==FALSE) die("errore nella composizione della query". mysql_error());

$result=mysql_query($query,$connessione);
if ($result==FALSE) die("Errore inserimento articolo");
echo " Dati inseriti con successo: ".$descrizione;

mysql_close($connessione);
?>

Il risultato è l'errore errore nella composizione della query quindi presumo che l'errore sia nella query update qualcuno può aiutarmi?=??
 
Scusami, ma è ovvio che ti dia errore. La query UPDATE deve avere questa struttura:
Codice:
UPDATE tabella SET campo1='valore1', campo2='valore2' WHERE campo='valore'
Invece tu hai usato questa struttura:
Codice:
UPDATE tabella WHERE campo='valore'
Immagino che tu debba fare una cosa di questo tipo:
PHP:
$query = "UPDATE anagrafica_soci SET cognome='{$descrizione1}', nome='{$descrizione2}', indirizzo='{$descrizione3}', codice_comune='{$descrizione4}', data_nascita='{$descrizione5}', telefono1='{$descrizione6}', telefono2='{$descrizione7}'";
 
Ti ringrazio per la risposta immediata ora funziona tutto.
L'unica cosa che vorrei gestire é che quando un form viene lasciato vuoto non sovrascrivi la colonna mysql.
Come potrei farlo???
 
Puoi fare un controllo sui campi POST:
PHP:
foreach($_POST as $k => $v)
{
  if($v == '')
    die('Non hai compilato tutti i campi.');

  $_POST[$k] = !get_magic_quotes_gpc() ? addslashes($v) : $v;
}
Mettilo prima dell'assegnazione delle variabili $descrizione, $descrizione1, eccetera. In questo modo ti proteggi anche da eventuali tentativi di SQL injection.
 

Discussioni simili