我正在做的是尝试设置一个页面,用户可以在其中查看自己创建的工具并随时删除它们。我正在查询三个不同的表并将结果放入数组中。一旦这些值在数组中,foreach循环就会遍历并填充表中包含表中所有信息的表,如下所示:
$counter = 1;
echo '<table>'
foreach ($recent_saved_tools as $key => $value) {
echo '<tr name="item'.$counter.'">';
echo '<td>';
echo '<input type="hidden" name="tablename" value="'.$value['table'].'" />';
echo '<input type="hidden" name="tabledelete" value="'.$value['delete'].'" />';
echo '<input type="hidden" name="tableidfield" value="'.$value['idfield'].'" />';
echo '<input type="hidden" name="tableid" value="'.$value['id'].'" />';
//code to display the tool name and link
echo '<a style="text-decoration:none;" href="'.WEBSITE.'tools/'.$value['URL'].'?saved_data_id='.$value['id'].'">'.$value['display'].'</a><br />';
echo date("m/d/Y H:i:s", $key).'<br />';
echo '</td><td>';
//code to display the delete button
echo ' <input class="cssformbutton bluebutton" type="button" name="delete" id="deletebtn'.$counter.'" value="Delete" /><br /><br /><br /><br /></td>';
$counter ++;
}
echo '</table>';
问题在于每当我运行SQL查询时,无论我点击什么按钮,它总是从最后一个表行获取值。我知道它与它们被命名的方式有关(多个元素具有相同的名称),但我对如何解决这个问题感到茫然。任何帮助将不胜感激。
这是我用来删除项目的查询:
$query = 'UPDATE '.$value['table'].' SET '.$value['delete'].' = 1 WHERE '.$value['idfield'].' = '.$value['id'];
$sql->query($query);
编辑:添加删除代码
答案 0 :(得分:0)
看起来你并没有关闭任何地方......
从查询中返回什么结果? 你期待什么输出?
答案 1 :(得分:0)
每行都有一些输入发布到服务器。它们具有相同的名称 - 每行。你可以改变它:
echo '<input type="hidden" name="tablename'.$counter.'" value="'.$value['table'].'" />';
然后,您可以在删除代码中使用$_POST['tablename'.$rownr]
。
答案 2 :(得分:0)
尝试将它变为for循环并将变量添加到最后。
$array;
$counter = count($array);
echo '<table>'
for($i = 0; $i < $counter - 1; $i++) {
echo '<tr name="item'.$i.'">';
echo '<td>';
echo '<input type="hidden" name="tablename" value="'.$value['table']. $i'" />';
echo '<input type="hidden" name="tabledelete" value="'.$value['delete']. $i'" />';
echo '<input type="hidden" name="tableidfield" value="'.$value['idfield']. $i'" />';
echo '<input type="hidden" name="tableid" value="'.$value['id'].'" />';
//code to display the tool name and link
echo '<a style="text-decoration:none;" href="'.WEBSITE.'tools/'.$value['URL'].'?saved_data_id='.$value['id'].'">'.$value['display'].'</a><br />';
echo date("m/d/Y H:i:s", $key).'<br />';
echo '</td><td>';
//code to display the delete button
echo ' <input class="cssformbutton bluebutton" type="button" name="delete" id="deletebtn'.$counter.'" value="Delete" /><br /><br /><br /><br /></td>';
}
echo '</table>';