使用mysql数组填充php表单字段(单击)
我是一名php/mysql新手,正在开发一个发票应用程序。我有一个summary.php页面,在该页面中,我使用php查询一个数据库,并用检索到的数据呈现一个表:使用mysql数组填充php表单字段(单击),php,mysql,arrays,Php,Mysql,Arrays,我是一名php/mysql新手,正在开发一个发票应用程序。我有一个summary.php页面,在该页面中,我使用php查询一个数据库,并用检索到的数据呈现一个表: < ?php mysql_connect ... [ snip ] ... // retrieve all data in the 'Invoices' table ... $result = mysql_query("SELECT * FROM Invoices") or die(mysql_erro
< ?php
mysql_connect ... [ snip ] ...
// retrieve all data in the 'Invoices' table ...
$result = mysql_query("SELECT * FROM Invoices") or die(mysql_error());
// ... and store each record in a variable:
$row = mysql_fetch_array($result);
<?php
mysql\u连接。。。[剪]。。。
//检索“发票”表中的所有数据。。。
$result=mysql_query(“从发票中选择*”)或die(mysql_error());
// ... 并将每条记录存储在一个变量中:
$row=mysql\u fetch\u数组($result);
我的桌子是:
<table class="record-summary">
<form action="/edit.php" method="post">
<tr>
<th ...
[ snip: more table headers ] ...
<?php
$controls = "<input type=\"submit\" value=\"details.php\" /><input type=\"submit\" value=\"edit.php\" />";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td class=\"id\">". $row['ID']. "</td>";
echo "<td class=\"inv\">". $row['invoiceNumber']. "</td>";
[ snip: more data cells ] ...
echo "<td class=\"controls\">". $controls . "</td>";
echo”“;
将其包含在循环中,表单的“操作”脚本将能够通过$\u POST['row']
访问相应的$row
变量。您可以将ID传递给edit.php
和details.php
,但不需要该表单,只需两个链接edit.php?ID=
和details.php?ID=
:
<?php
// $controls = "<input type=\"submit\" value=\"details.php\" /><input type=\"submit\" value=\"edit.php\" />"; <-- is not necessary
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td class=\"id\"><a href=\"details.php?id=". $row['ID']. "\">details.php</a> | <a href=\"edit.php?id=". $row['ID']. "\">edit.php</a></td>";
echo "<td class=\"inv\">". $row['invoiceNumber']. "</td>";
// [ snip: more data cells ] ...
// echo "<td class=\"controls\">". $controls . "</td>"; <-- is not necessary
谢谢,但我有点迷路了。我将隐藏字段添加到$controls,并尝试在details.php中回显$_POST['row'](以及$row和$result),但我只是猜测。我正在尝试将行数据提供给details.php。你能详细说明一下吗?东尼。我喜欢这样,一方面,出于我的目的使用链接似乎比使用表单更具语义。但是,您能补充一下我是如何访问details.php中的$row数据的吗?或者这里的想法是只获取ID,然后在加载details.php/edit.php时重新查询db??谢谢!再次谢谢托尼。我花了一段时间才注意到我的锚和$GET中有不匹配的案例。另外,为了他人的利益,请在您的“死亡”语句末尾添加缺少的分号:)。。。(我没有编辑权限)顺便说一句,虽然这个解决方案对我来说很有意义(今天我将继续填充我的表单页面),但我仍然想知道,将数组(所有行的数据)从一个页面传递到另一个页面,而不是重新查询数据库,以及在任何情况下,如何这样做是否有好处。我现在开始阅读你的其他解决方案(如…,sprintf等)。。。再次非常感谢您可以使用一个表单,但它不是一个表单,而是每行一个表单,使用
<?php
// $controls = "<input type=\"submit\" value=\"details.php\" /><input type=\"submit\" value=\"edit.php\" />"; <-- is not necessary
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td class=\"id\"><a href=\"details.php?id=". $row['ID']. "\">details.php</a> | <a href=\"edit.php?id=". $row['ID']. "\">edit.php</a></td>";
echo "<td class=\"inv\">". $row['invoiceNumber']. "</td>";
// [ snip: more data cells ] ...
// echo "<td class=\"controls\">". $controls . "</td>"; <-- is not necessary
//....
if (isset($_GET['id']) && is_numeric($_GET['id']))
{
$id = $_GET['id'];
}
else
{
die("There is no id.");
}
$sql = sprintf("SELECT * FROM Invoices WHERE id = %s", $id);
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_array($result);