Przekazanie zmiennych z pętli do formularza.

0

Witam,

w formularzu mam listę pobraną z bazy danych, po zmianie części danych chciałbym zaktualizować rekordy w bazie jednak nie wiem jak je odczytać w pętli po stronie PHP.

Dam może przykład:

<form action="update-data.php" method="post" enctype="multipart/form-data"  name="form1">
<td><input type="text" name="ud_orderno" value="<? echo $orderno; ?>"></td>
<table>
	<tr>
		<td>Symbol</td>
		<td>Nazwa</td>
	</tr>
	<?
	   $i=0;
	   while ($i < $num) {
	   $symbol=mysql_result($result,$i,"symbol");
	   $gt_name=mysql_result($result,$i,"gt_name");
           $quantity=mysql_result($result,$i,"quantity");
	?>	   
	<tr>
		<td><input type="text" name="ud_symbol" size="4" disabled="disabled" value="<? echo $symbol; ?>"></td>
		<td><input type="text" name="ud_gt_name" size="50" disabled="disabled" value="<? echo $gt_name; ?>"></td>
                <td><input type="text" name="ud_quantity" size="4" value="<? echo $quantity; ?>"></td>
		<?   
		   ++$i;
		   }
		?>
	</tr>
</table>
<a href="../index.php"><button type="button">Cofnij</button></a> <input type="submit" value="Wyślij Zamówienie">
</form>

update-data.php

<?
$ud_orderno=$_POST['ud_orderno'];		
$ud_quantity=$_POST['ud_quantity'];
$ud_symbol=$_POST['ud_symbol'];
$ud_gt_name=$_POST['ud_gt_name'];

$ud_orderno = addslashes($ud_orderno);
$ud_quantity = addslashes($ud_quantity);
$ud_symbol = addslashes($ud_symbol);
$ud_gt_name = addslashes($ud_gt_name);

require "connection.php";
   connection();

$query="UPDATE ";
mysql_close();

?>

Proszę o pomoc w zainicjowaniu pętli w pliku update-data.php

Pozdrawiam,
Rafał

1

1.Nigdy nie mieszaj modelu z widokiem.
2.Funkcje mysql_ są zdeprecjonowane i będą usunięte w przyszłej wersji PHP. Użyj PDO.

Generalnie rzecz biorąc ja na Twoim miejscu zrobiłbym jako nazwę inputów ud_symbol_$id, np. ud_symbol_5, ud_symbol_11 (i tak samo do pozostałych), a potem iterował po wszystkich danych $_POST i sprawdzał nazwy.

Innym wyjściem może być jako nazwa ud_symbol[] (dokładnie w taki sposób, reszta też w tym stylu), a przed tym hidden input o nazwie id[] zawierający id aktualnego rekordu - wtedy po stronie PHP w $_POST otrzymasz kilka tablic, które bez problemu odczytasz.

0

Dziękuję za wskazówki, możesz jeszcze wyjaśnić co masz na myśli pisząc: "1.Nigdy nie mieszaj modelu z widokiem."?

0

https://pl.wikipedia.org/wiki/Model-View-Controller
W skrócie: zarządzanie bazą danych powinno być oddzielone od sekcji wyświetlania.

Plus wszystkie funkcje mysql_ są zdeprecjonowane. Użyj PDO.

1 użytkowników online, w tym zalogowanych: 0, gości: 1