使用mysql数组填充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新手,正在开发一个发票应用程序。我有一个summary.php页面,在该页面中,我使用php查询一个数据库,并用检索到的数据呈现一个表:

< ?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);