0

我正在做的是尝试建立一个页面,用户可以在其中查看他们创建的工具并随时删除它们。我正在查询三个不同的表并将结果放入一个数组中。一旦这些值在一个数组中,一个 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 '&nbsp;&nbsp;&nbsp;&nbsp;<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);

编辑:添加删除代码

4

3 回答 3

0

看起来你没有关闭任何地方......

查询返回什么结果?你期待什么输出?

于 2013-02-28T19:36:53.163 回答
0

每行都有一些发布到服务器的输入。它们具有相同的名称 - 对于每一行。你可以这样改变它:

echo '<input type="hidden" name="tablename'.$counter.'" value="'.$value['table'].'" />';

然后你可以$_POST['tablename'.$rownr]在你的删除代码中使用。

于 2013-02-28T19:37:45.077 回答
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 '&nbsp;&nbsp;&nbsp;&nbsp;<input class="cssformbutton bluebutton" type="button" name="delete" id="deletebtn'.$counter.'" value="Delete" /><br /><br /><br /><br /></td>';

}
echo '</table>';
于 2013-02-28T19:43:18.520 回答