2013-02-14 189 views
1

我很难过。这里是我的相关代码:唯一标识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变量。但是,即使它是唯一的可用后期变量,如何在不知道其名称的情况下将它引用为等于$ myid?因为我不知道前往删除页面的$ _POST变量的名称。

答案可能很简单,但无论出于何种原因,它在这个夜晚不会来到我身边。

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

回答

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>"; 
+0

感谢您的帮助,应该有这样的想法。 – 2013-02-14 06:22:43

+1

如果您想将它作为带有一系列多个复选框的单个窗体来使用,请为每个项目和某个值(例如value =“1”)使用带有name =“remove [$ id]”的复选框元素。或值=“删除”),然后你可以迭代通过存储为$ _GET ['remove']或$ _POST ['remove']的id数组,或者连接ID并使用IN()函数执行单个MySQL查询 – Scuzzy 2013-02-14 22:32:42

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>"; 
} 
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>"; 
?> 
+0

更正了我的答案:) – Lock 2013-02-14 06:57:08

+0

我知道亲爱的,已经说过你的答案只是编辑它。 – 2013-02-14 06:59:22