- Home
- Categorie
- Coding e Sistemistica
- PHP
- Non riesco a modificare i dati di un db
-
Non riesco a modificare i dati di un db
Ciao a tutti ho un problema con il mio script php.
In pratica sto facendo una pagina che permetta di cambiare i prezzi di una lista di prodotti inseriti inun db.In una pagina e presente un form con la lista dei prodotti, il prezzo e un campo vuoto a fianco a ciascun prodotto dove inserire il prezzo nuovo e il tasto submit alla fine dell'elenco che manda a questo script i dati via POST.
Le variabili che vengono mandate sono variabili che hanno come nome l'ID del prodotto e come valore il prezzo nuovo da cambiare.
Con questo script arrivo a leggere la scritta che il prezzo è stato modificato ma in realtà non mi modifica niente. Potete aiutarmi??
<?php
$host = "mysqlxxxx.xxxxxxx.xxx";
$username = "arrrrr";
$password = "grrrrrrrr";
$database = "df_prodotti";
$tabella = "prodotti";//Dati nella tabella: ID, nome_ita, nome_fra, prezzo
$connessione = mysql_connect ($host,$username,$password) or die ("Connessione impossibile
".mysql_error());$lista=@mysql_query('SELECT ID, nome_ita, prezzo FROM prodotti');
if (!$lista) {exit('Errore: Tabella non trovata');}//Imposto il comando sql per cambiare il prezzo
$sql="UPDATE prodotti SET
prezzo='$prezzo' WHERE id='$id'";while ($row=mysql_fetch_array($lista)) {
$id=$row['ID'];
// Verifico se è presente una variazione
if (isset($_POST[$id])) {
//Inserire controllo numero
$prezzo=$_POST[$id];
//Modifico dato
if (@mysql_query ($sql)) {
echo "<p>Prezzo del prodotto".$id."aggiornato a ".$prezzo."</p>";}
else echo "errore";
}
}?>
-
Ciao Paci.
Prima di questa riga non trovo l'associazione $id=$_POST['id'];
[php]$sql="UPDATE prodotti SET
prezzo='$prezzo' WHERE id='$id'";[/php]Immagino poi che tutti questi:$_POST[$id]; ```dovrebbero essere:
$_POST['id'];
Posteresti il form? Credo che ci sia un po' di confusione sui richiami agli elementi POSTati. ;)
-
Questo è tutto form e script completo è tutto in una pagina:
<?php
$host = "mysqlxxxx.xxxxxxx.xxx";
$username = "arrrrr";
$password = "grrrrrrrr";
$database = "df_prodotti";
$tabella = "prodotti";//Dati nella tabella: ID, nome_ita, nome_fra, prezzo
$connessione = mysql_connect ($host,$username,$password) or die ("Connessione impossibile
".mysql_error());$lista=@mysql_query('SELECT ID, nome_ita, prezzo FROM prodotti');
if (!$lista) {exit('Errore: Tabella non trovata');}//Imposto il comando sql per cambiare il prezzo
$sql="UPDATE prodotti SET
prezzo='$prezzo' WHERE id='$id'";while ($row=mysql_fetch_array($lista)) {
$id=$row['ID'];
// Verifico se è presente una variazione
if (isset($_POST[$id])) {
//Inserire controllo numero
$prezzo=$_POST[$id];
//Modifico dato
if (@mysql_query ($sql)) {
echo "<p>Prezzo del prodotto".$id."aggiornato a ".$prezzo."</p>";}
else echo "errore";
}
}<form action="modifica_prezzo.php" method="post" name="Cambio prezzo">
<p> </p>
<p> </p>
<table width="500" border="1">
<tr>
<th scope="col">ID</th>
<th scope="col">Prodotto</th>
<th scope="col">Prezzo</th>
<th scope="col">Nuovo prezzo</th>
</tr><?php
$host = "xxxxxxxxxxxxxxxxxxxxx";
$username = "xxxxxxxxxxxxxxxxxxx";
$password = "xxxxxxxxxxxxxxxxxxx";
$database = "df_prodotti";
$tabella = "prodotti";//Dati nella tabella: ID, nome_ita, nome_fra, prezzo
$connessione = mysql_connect ($host,$username,$password) or die ("Connessione impossibile
".mysql_error());$lista=@mysql_query('SELECT ID, nome_ita, nome_fra, prezzo FROM prodotti');
if (!$lista) {exit('Errore: Tabella non trovata');}while ($row=mysql_fetch_array($lista)) {
$id=$row['ID'];
$nome_ita=$row['nome_ita'];
$prezzo=$row['prezzo'];
echo "<tr>
<td>".$id."</td>
<td>".$nome_ita."</td>
<td>".$prezzo."</td>
<td> <input name="".$id."" type="text" value="Nuovo prezzo" /> </td></tr>";
}?>
</table>
<input name="" type="submit" />
</form></body>
</html>
-
Ciao,
questa riga di codice:
[php]
$sql="UPDATE prodotti SET
prezzo='$prezzo' WHERE id='$id'";
[/php]
va inserita
[php]
while ($row=mysql_fetch_array($lista)) {
$id=$row['ID'];
// Verifico se è presente una variazione
if (isset($_POST[$id])) {
//Inserire controllo numero
$prezzo=$_POST[$id];$sql="UPDATE prodotti SET prezzo='$prezzo' WHERE id='$id'"; // QUI
//Modifico dato
if (@mysql_query ($sql)) {
echo "<p>Prezzo del prodotto".$id."aggiornato a ".$prezzo."</p>";}
else echo "errore";
}
}
[/php]Alessandro
-
Grazie mille per la soluzione sei un grande!!
Ma mi potresti spiegare come mai semplicemente spostando la riga lo script fa il suo sporco compito?