Aggiornamento di un campo del DB nella stessa pagina php

Ciao a tutti!

Il mio problema è il seguente: con il metodo che mi sono creato qui sotto creo una mega tabella nella quale ci metto i campi dell'oggetto del DB che mi sono recuperato con la select.

<?php
function trova($id)
{
// METODO CHE CERCA L'ARTICOLO NEL DB
$db=new DBInterface;
$query1="SELECT ID, NOME, MARCA, CATEGORIA, PREZZO, IVA, DESCRIZIONE, DESCRIZIONEGENERALE, TESTO, TESTOGENERALE, IMMAGINE_SMALL, IMMAGINE_LARGE, SCHEDA, MAGAZZINO, RISERVA, MAGAZZINOPOSIZIONE, CLASSESCONTO, OPZIONI FROM TEMP_ARTICOLI WHERE ID='".$id."'";
$art = $db->query($query1);
foreach ($art as $line)
{
$mar = $line['MARCA'];
$cat = $line['CATEGORIA'];
$descrg = $line['DESCRIZIONEGENERALE'];
$sct = $line['CLASSESCONTO'];
print("
<table border=\"1\">
   <tr align=\"center\">
      <td colspan=\"3\">
      <form enctype=\"multipart/form-data\" action=\"nuovoarticolo.php\" method=\"POST\"><br>
      <h2>NUOVO ARTICOLO</h2>
      </td>
   <tr>
      <td>
      Identificativo <br><input type=\"text\" name=\"id\" size=\"30\" maxlength=\"30\" value=\"".$line['ID']."\"><br>
      Nome <br><input type=\"text\" name=\"nome\" size=\"30\" maxlength=\"50\" value=\"".$line['NOME']."\"><br>
      </td>
      <td>
      Marca <br><select name=\"marca\">
      <option value=\"$mar\">$mar</option>");
      $this->marca();
      print("</select><br>
      Categoria <br><select name=\"categoria\">
      <option value=\"$cat\">$cat</option>");
      $this->categoria();
      print("</select><br>
      </td>
      <td>
      Prezzo <br><input type=\"text\" name=\"prezzo\" size=\"10\" maxlength=\"10\" value=\"".$line['PREZZO']."\"><br>
      Iva <br><input type=\"text\" name=\"iva\" size=\"5\" maxlength=\"5\" value=\"".$line['IVA']."\"><br>
      </td>
   </tr>
   <tr>
      <td>
      Descrizione <br><textarea name=\"descrizione\" rows=\"10\" cols=\"25\">".$line['DESCRIZIONE']."</textarea><br><br>
      Descrizione generale <br><select name=\"descr_gen\">
      <option value=\"$descrg\">$descrg</option>");
      $this->desrizioneGenerale();
      print("</select><br>
      </td>
      <td>
      Testo aggiuntivo <br><textarea name=\"testo\" rows=\"7\" cols=\"35\">".$line['TESTO']."</textarea><br><br>
      Testo generale <br><input type=\"text\" name=\"testo_gen\" size=\"20\" maxlength=\"20\" value=\"".$line['TESTOGENERALE']."\"><br>
      </td>
       <td>
      Magazzino <br><input type=\"text\" name=\"magazzino\" size=\"11\" maxlength=\"11\" value=\"".$line['MAGAZZINO']."\"><br>
      Riserva <br><input type=\"text\" name=\"riserva\" size=\"11\" maxlength=\"11\" value=\"".$line['RISERVA']."\"><br>
      Posizione a Magazzino <br><input type=\"text\" name=\"posizione\" size=\"30\" maxlength=\"30\" value=\"".$line['MAGAZZINOPOSIZIONE']."\"><br>
      </td>
   </tr>
   <tr>
      <td>
      Classe di sconto <br><select name=\"sconto\">
      <option value=\"$sct\">$sct</option>");
      $this->sconto();
      print("</select><br>
      </td>
      <td>
      Opzioni <br><textarea name=\"opzioni\" rows=\"10\" cols=\"25\">".$line['OPZIONI']."</textarea><br>");
print(" </td>
      <td>");         
      $immagini = new Immagine();
      $immagini->insImmagini();
print ("</td>
   </tr>
   <tr>
      <td align=\"center\">
      <input type=\"submit\" name=\"invia\" value=\"INSERISCI COME NUOVO ARTICOLO\">
       </td>
      <td>
      </td>
      <td align=\"center\">
      <form name=\"updateform\" method=\"post\" action=\"articolo_cercato.php\">
      <input type=\"hidden\" name=\"funzione\" value=\"modifica\">
      <input type=\"submit\" name=\"aggiorna\" value=\"AGGIORNA ARTICOLO\">
      </form> 
      </td>
   </tr>
   </form>
</table>");
$funz = $_POST['funzione']; 
if($funz=="modifica")
{ 
$this->aggiornamento($id, $nome, $marca, $categoria, $prezzo, $iva, $descrizione, $descr_gen, $testo, $testo_gen, $magazzino, $riserva, $posizione, $sconto, $opzioni);
}
}
}
?>

con il metodo aggiornamento faccio l'UPDATE dei campi del DB.

Vorrei che quando l'utente clicca sul pulsante AGGIORNA ARTICOLO, la pagina si ricaricasse (come se facessi aggiorna) con i dati modificati dall'utente.

Come devo fare ragazzi??  :-\ E' tutta mattina che ci sbatto la testa!

Help!  ;)

inviato 10 anni fa
il Navigante
X 0 X

Quanti record restituisce la select? Si tratta di un unico articolo?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Si! la select restituisce i campi di un unico articolo.

Come faccio?

risposto 10 anni fa
il Navigante
X 0 X

Perché allora hai messo

foreach ($art as $line)

?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Lo so, non serve a nulla!  :-[

Ma come faccio sennò?

risposto 10 anni fa
il Navigante
X 0 X

Se $art è un array con un unico elemento allora $line = $art[0];

Tornando al problema iniziale, non ho capito in cosa trovi le difficoltà. Dovresti prendere i valori passati via $_POST e fare una query di update.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda