Modificare dati query

intimoviro

Utente Attivo
18 Ago 2009
272
0
0
Salve ragazzi, sono nuovo del forum.
Ho una questione che non riesco proprio a risolvere, cioè:
ho una tabella utenti, dove grazie ad una query estraggo tutti i record che mi servono e poi l'inserisco in una tabella, la mia domanda è: come faccio a modificare un utente, cioè solo una riga del database?
Scusate se non riesco a spiegarmi meglio, però ora vi posto il codice così spero che comprendiate ciò che dico:

Query per estrarre i dati, con un link che rimanda alla pagina dove dovrei modificare i dati dell'utente(mod_utente.php):

<?php require_once('../site/config.php');
$mod = "mod_utente.php";
$link = $mod . '?BuyerID=' . $id;
$result = mysql_query("SELECT * FROM utenti")or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
$id = htmlspecialchars($row['BuyerID']);
$rag_soc = htmlspecialchars($row['rag_soc']);
$username = htmlspecialchars($row['username']);
$nome = htmlspecialchars($row['nome']);
$cognome = htmlspecialchars($row['cognome']);
$email = htmlspecialchars($row['user_email']);
echo
'<table width="80%" border="1" cellspacing="1" cellpadding="3">
<tr>';
echo '<br />';
echo '<th>'.$id.'</th>';
echo '<th>'.$username.'</th>';
echo '<th>'.$rag_soc.'</th>';
echo '<th>'.$nome.'</th>';
echo '<th>'.$cognome.'</th>';
echo '<th>'.$email.'</th>';
echo "

<td><a href=\"$link\">Modifica</a></td>
";
echo "</table>\n";
}
mysql_close($db);?>
Quindi nella pagina mod_utente.php, come richiamo l'array: $row[BuyerID']?
Grazie spero di essere stato abbastanza chiaro, altrimenti fatemi sapere e cercherò di trovare altre parole http://forum.mrwebmaster.it/images/smilies/wink.gif

Grazie :)
 
ECCO LO SAPEVO CHE MI ERO SPIEGATO MALE!:crying:

Grazie per il tuo benvenuto e per la tua risposta velocissima,
allora prelevo i dati da database per mostrarli a video in una tabella, poi inserendo un link modifica a fianco ad ogni record prelevato, dovrei rimandare tutti i dati di quell'utente alla pagina dove posso eseguire l'update di qull'utente.
Se nemmeno sono riuscito a spiegarmi dimmelo, cosi ti dò il link dove puoi visualizzare tu stesso cosa intendo.
Grazie
 
Ah, ok :)

Il link "modifica" conterrà una URL tipo:

<a href="modifica.php?id=<?...?>">

dove al posto di "..." nel codice ci sarà il campo ID (contatore, autoincrement) della tabella.

Nella pagina modifica.php eseguirai una query del tipo:

"select * from tabella where id = " . $variabile_in_querystring

per intenderci.

A questo punto, nel value="" delle varie caselle input, stampi a video i relativi valori.

L'action del form sarà qualcosa tipo:

<form method="post" action="modifica.php?id=$variabile_in_querystring&azione=modifica">

A parte, prima o dopo la query con cui popoli il form (ti consiglio prima), fai un controllo del tipo:

<?
if ($azione == "modifica")
{
// esegui l'update parametrizzato, sempre con $variabile_in_querystring
}
?>

Spero di essere stato chiaro.
 
Quindi questo va bene per il link?
$link = $mod . '?BuyerID=' . $id;

Dove $mod ha come valore "mod_utente.php"

Che trovi nel codice che ti ho scritto prima.

Nella pagina mod_utente.php faccio questo:

$result = mysql_query("SELECT * FROM utenti WHERE id=" . $id");
while ($row = mysql_fetch_array($result)) {
$id = htmlspecialchars($row['BuyerID']);
$rag_soc = htmlspecialchars($row['rag_soc']);
$username = htmlspecialchars($row['username']);
$nome = htmlspecialchars($row['nome']);
$cognome = htmlspecialchars($row['cognome']);
$email = htmlspecialchars($row['user_email']);

e poi inserisco le variabili nel post

Dimmi se è giusto così, e poi non ho capito a cosa serve questo:
<?
if ($azione == "modifica")
{
// esegui l'update parametrizzato, sempre con $variabile_in_querystring
}
?>
Grazie
 
Il commento di quello che non hai capito mi pare abbastanza chiaro: usi una condizione per far si che l'effettiva modifica venga effettuata all'interno della stessa pagina (mod_utente.php, insomma).

Procedi step by step.
 
Grazie funziona perfettamente, poi ho fatto la tessa cosa con la pagina per cancellare l'utente, ed è tutto ok!
Grazie ancora :D
 

Discussioni simili