唯一标识MySQL条目

时间:2013-02-14 06:08:58

标签: php mysql

我很难过。这是我的相关代码:

while($data = mysql_fetch_array($getdata)){

$myid = $data["myid"]; //unique entry identifier for table rows
$method = $data["method"];
$category = $data["category"];
$company = $data["company"];
$datestarted = $data["datestarted"];
$initialfee = $data["initialfee"];
$ongoingfee = $data["ongoingfee"];

echo "</tr>";
echo "<tr>";
echo "<td class='mymenu' width='14%' height='60px'>";
echo $method;
echo "</td>";
echo "<td class='mymenu' width='20%' height='60px'>";
echo $category;
echo "</td>";
echo "<td class='mymenu' width='20%' height='60px'>";
echo $company;
echo "</td>";
echo "<td class='mymenu' width='12%' height='60px'>";
echo $datestarted;
echo "</td>";
echo "<td class='mymenu' width='12%' height='60px'>";
echo $initialfee;
echo "</td>";
echo "<td class='mymenu' width='12%' height='60px'>";
echo $ongoingfee;
echo "</td>";
echo "<td class='mymenu' width='10%'>";
echo "<input type='submit' name='' class='button' value='Remove'>";
echo "</td>";
}

这里发生的是,将要显示一个表,该表中的每一行看起来都如上所示。可以有任意数量的条目,但可能在1-6的范围内。每个条目的末尾都有一个删除按钮。点击后,用户将被转发到一个页面,然后该表格将从表格中删除。我的问题是根据用户点击的“删除”按钮确定用户想要删除的条目。如果行数不是动态的,我可以提前给每个输入按钮一个唯一的名称,这可能会有所帮助。如何在单击删除按钮后唯一标识删除页面上需要删除的行?我无法使用会话,因为会话变量$ myid只会在每次创建新行时更改。从数据库中提取显然没有帮助,因为我在下一页上缺少唯一标识符。

我知道将每个按钮的名称设置为等于每个唯一的$ myid,这将使该唯一的$ myid成为唯一的$ _POST变量,该变量将根据按下的按钮移动到删除页面。在删除页面上,我只需将$ myid设置为该post变量。但是,即使它是唯一可用的post变量,如何在删除页面上引用它等于$ myid而不知道它的名称?因为我不知道前往删除页面的$ _POST变量的名称。

答案可能很简单,但无论出于何种原因,这个晚上都不会来找我。

感谢您的帮助。老实说,如果没有这个论坛我会怎么做。

3 个答案:

答案 0 :(得分:1)

为每一行创建一个新表单,其中一个隐藏字段包含您要删除的记录的ID。

echo "<form>";
echo "<td class='mymenu' width='10%'>";
echo "<input type='hidden' value='$id'>";
echo "<input type='submit' name='' class='button' value='Remove'>";
echo "</td>";
echo "</form>";

答案 1 :(得分:0)

首先,我想说你的tr标记位置不合适,并创建form来解决问题

试试这个:

while($data = mysql_fetch_array($getdata)){

    $myid = $data["myid"]; //unique entry identifier for table rows
    $method = $data["method"];
    $category = $data["category"];
    $company = $data["company"];
    $datestarted = $data["datestarted"];
    $initialfee = $data["initialfee"];
    $ongoingfee = $data["ongoingfee"];


    echo "<tr>";
    echo "<td class='mymenu' width='14%' height='60px'>";
    echo $method;
    echo "</td>";
    echo "<td class='mymenu' width='20%' height='60px'>";
    echo $category;
    echo "</td>";
    echo "<td class='mymenu' width='20%' height='60px'>";
    echo $company;
    echo "</td>";
    echo "<td class='mymenu' width='12%' height='60px'>";
    echo $datestarted;
    echo "</td>";
    echo "<td class='mymenu' width='12%' height='60px'>";
    echo $initialfee;
    echo "</td>";
    echo "<td class='mymenu' width='12%' height='60px'>";
    echo $ongoingfee;
    echo "</td>";



    echo "<td class='mymenu' width='10%'>";
    echo "<form>";
    echo "<input type='hidden' value='".$id."'>";
    echo "<input type='submit' name='' class='button' value='Remove'>";
    echo "</form>";
    echo "</td>";

    echo "</tr>";
}

答案 2 :(得分:0)

试试这个@Lock忘了把"放进去。

<?php
echo "<form>";
echo "<table><tr>";
echo "<td class='mymenu' width='10%'>";
echo "<input type='hidden' value='$id'>";
echo "<input type='submit' name='' class='button' value='Remove'>";
echo "</td>";
echo "</tr></table>";
echo "</form>";
?>