[PHP] Aggiornare i dati dei record selezionati

  • Creatore Discussione Creatore Discussione Max61
  • Data di inizio Data di inizio

Max61

Utente Attivo
2 Mar 2014
760
4
18
Salve, come al solito sono di fronte ad un problema che non riesco a risolvere da solo...
mi spiego: ho una tabella che visualizzo su pc e nell'ultima colonna ho la possibilità di selezionare l'id da modificare o cancellare, la cancellazione l'ho fatta ma la modifica non mi riesce, nel senso che non mi riesce far partire la query dal pulsante che sta nella pagina dove visualizzo i dati da modificare di cui allego il codice
PHP:
<?php
require 'Connessione.php';

if(isset($_POST['submit']) && (trim($_POST['submit']) == "Elimina selezionati"))
{ 
foreach ($_POST['record'] as $id)
{

   mysql_query("DELETE FROM tblcalcoloeta WHERE id = $id");

}
// una volta eliminPP, si viene reindirizzati alla pagina di visualizzazione
header("Location: Seleziona_RecordRilevato.php");

} elseif (isset($_POST['submit']) && (trim($_POST['submit']) == "Modifica selezionati"))
{
echo "<form action=\"esegui_query.php?id\" method=\"post\" name=\"modifica\" id=\"form_modifica\">";

$record = $_POST['record'];
foreach ($record as $id)
{
$sqlquery = "SELECT * FROM tblcalcoloeta WHERE id = $id";
$result = mysql_query($sqlquery);
$number = mysql_num_rows($result);
$i = 0;

$id = mysql_result($result,$i,"id");
$datanascita = mysql_result($result,$i,"datanascita");
$datamorte = mysql_result($result,$i,"datamorte");
$statocivile = mysql_result($result,$i,"statocivile");
$comuneresidenza = mysql_result($result,$i,"comuneresidenza");
$mesemorte = mysql_result($result,$i,"mesemorte");
$annomorte = mysql_result($result,$i,"annomorte");
$mesecalcolo = mysql_result($result,$i,"mesecalcolo");
$atto = mysql_result($result,$i,"atto");
$parte = mysql_result($result,$i,"parte");
$serie = mysql_result($result,$i,"serie");
$sesso = mysql_result($result,$i,"sesso");
$annocalcolo = mysql_result($result,$i,"annocalcolo");
$eta = mysql_result($result,$i,"eta");
$fascia_eta = mysql_result($result,$i,"fascia_eta");

echo "<font color=\"red\"><b>ID:</b></font><b> $id </b><br>
<font color=\"red\"><b>Data nascita</b></font> (<b><font color=\"blue\"> \"</b>$datanascita<b>\"</b>)<b>:</b> <input style=\"width: 100px;\" type=\"text\" name=\"datanascita\" value=\"$datanascita\"> <br>
<font color=\"red\"><b>Data morte</b></font> (<b> \"</b>$datamorte<b>\"</b>)<b>:</b> <input style=\"width: 100px;\" type=\"text\" name=\"datamorte\" value=\"$datamorte\"> <br>
<font color=\"red\"><b>Stato civile</b></font> (<b> \"</b>$statocivile<b>\"</b>)<b>:</b> <input style=\"width: 100px;\" type=\"text\" name=\"statocivile\" value=\"$statocivile\"> <br>
<font color=\"red\"><b>Comune morte</b></font> (<b> \"</b>$comuneresidenza<b>\"</b>)<b>:</b> <input style=\"width: 100px;\" type=\"text\" name=\"comuneresidenza\" value=\"$comuneresidenza\"> <br>
<font color=\"red\"><b>mese di morte</b></font> (<b> \"</b>$mesemorte<b>\"</b>)<b>:</b> <input style=\"width: 100px;\" type=\"text\" name=\"mesemorte\" value=\"$mesemorte\"> <br>
<font color=\"red\"><b>Anno di morte</b></font> (<b> \"</b>$annomorte<b>\"</b>)<b>:</b> <input style=\"width: 100px;\" type=\"text\" name=\"input_attivo\" value=\"$annomorte\"> <br>
<font color=\"red\"><b>Anno calcolo</b></font> (<b> \"</b>$annocalcolo<b>\"</b>)<b>:</b> <input style=\"width: 100px;\" type=\"text\" name=\"input_attivo\" value=\"$annocalcolo\"> <br>
<font color=\"red\"><b>Sesso</b></font> (<b> \"</b>$sesso<b>\"</b>)<b>:</b> <input style=\"width: 100px;\" type=\"text\" name=\"input_attivo\" value=\"$sesso\"> <br>
<font color=\"red\"><b>Eta</b></font> (<b> \"</b>$eta<b>\"</b>)<b>:</b> <input style=\"width: 100px;\" type=\"text\" name=\"input_attivo\" value=\"$eta\"> <br>
<font color=\"red\"><b>Fascia Eta</b></font> (<b> \"</b>$fascia_eta<b>\"</b>)<b>:</b> <input style=\"width: 100px;\" type=\"text\" name=\"input_attivo\" value=\"$fascia_eta\"> <br>
<font color=\"red\"><b>Atto</b></font> (<b> \"</b>$atto<b>\"</b>)<b>:</b> <input style=\"width: 100px;\" type=\"text\" name=\"input_attivo\" value=\"$atto\"> <br>
<font color=\"red\"><b>Parte</b></font> (<b> \"</b>$parte<b>\"</b>)<b>:</b> <input style=\"width: 100px;\" type=\"text\" name=\"input_attivo\" value=\"$parte\"> <br>
<font color=\"red\"><b>Serie</b></font> (<b> \"</b>$serie<b>\"</b>)<b>:</b> <input style=\"width: 100px;\" type=\"text\" name=\"input_attivo\" value=\"$serie\"> <br>
<font color=\"red\"><b>Sesso</b></font> (<b> \"</b>$sesso<b>\"</b>)<b>:</b> <input style=\"width: 100px;\" type=\"text\" name=\"input_attivo\" value=\"$sesso\"> <br>
<hr> <br>";
}
echo "<input type=\"submit\" value=\"invia\">";
// salva i dati nel database

require 'Connessione.php';

$query = "UPDATE tblcalcoloeta SET datanascita='$datanascita', datamorte='$datamorte', statocivile='$statocivile', comuneresidenza='$comuneresidenza', sesso='$sesso', mesecalcolo='$mesecalcolo', annocalcolo='$annocalcolo', eta='$eta', fascia_eta='$fascia_eta', mesemorte='$mesemorte', annomorte='$annomorte', atto='$atto', parte='$parte', serie='$serie' WHERE id='$id'"
or die(mysql_error());

 // invio la query
$result = mysql_query($query);

// controllo l'esito
if (!$result) {
    die("Errore nella query $query: " . mysql_error());
}

// chiudo la connessione a MySQL
mysql_close();

echo 'Query eseguita correttamente';
?>
&nbsp;&nbsp;<input type="submit" name="submit" value="Salva modifiche">
&nbsp;&nbsp;
<input style="color:red" type="button" value="   Back   " onclick="history.go(-1);return true;">
<?php   
"</form>";
}
// una volta eliminati, si viene reindirizzati alla pagina di visualizzazione
//header("Location: Edit_Dati.php");
?>

Grazie per l'aiuto
Max61
 
Sicuro di rispettare i tipi di dato in tabella, perché l'id lo metti tra apici? ( WHERE id = '$id' ) $id non é un tipo intero? Se si gli interi non vanno tra apici.

Se noti, infatti, nella query di selezione l'id non lo hai messo tra apici.

In'oltre, non é un'errore, ma perché includi due volte il file connessione.php? Ovvero lo includi si al'inizio della pagina che prima della quary di aggiornamento.

P.S.: Non é un'errore ma é sole per informarti ma, le funzioni mysql_*, come puo vedere anche dal manuale php saranno presto deplecate e sostituite dalle funzione mysqli_*
 
Ultima modifica:
Si, è un id autoincrement, ho messo più volte il richiamo alla connessione nella speranza che lanciasse la quarta update...
Il vero problema è quello, non riesco ad aggiornare i dati.
Grazie
Max61
 
Se dopo aver tolto gli apice dal'id non dovessi funzionare, invece di richiamare singoli campi tramite mysql_resul() usa mysql_fetch_array(), cosi da produrre un'array contenente il valore di ogni campo ( evitando tutti quei mysql_result() ).

Prima di eseguire la query di aggiornamento, passa tutto dentrl la funzione var_dump() per essere sicuri su tipo di variabile che stai usando
 

Discussioni simili