如何从foreach循环中获取表中的值?

时间:2013-02-28 19:30:50

标签: php

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

编辑:添加删除代码

3 个答案:

答案 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 '&nbsp;&nbsp;&nbsp;&nbsp;<input class="cssformbutton bluebutton" type="button" name="delete" id="deletebtn'.$counter.'" value="Delete" /><br /><br /><br /><br /></td>';

}
echo '</table>';