2013-02-28 71 views
0

我在做的是试图建立一个页面,用户可以看到他们创建的工具,并随时删除它们。我正在查询三个不同的表并将结果放入一个数组中。一旦这些值是一个数组,foreach循环通过,并且在表中填充表的所有信息,例如:如何从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查询,不管是什么按钮I单击它总是从最后一个表格行获取值。我知道这与它们的命名方式有关(多个元素具有相同的名称),但是我对如何解决这个问题感到不知所措。任何帮助,将不胜感激。

下面是我用删除的项目查询:

$query = 'UPDATE '.$value['table'].' SET '.$value['delete'].' = 1 WHERE '.$value['idfield'].' = '.$value['id']; 

$sql->query($query); 

编辑:添加删除代码

+0

向我们显示您的删除代码? – UnholyRanger 2013-02-28 19:34:39

+0

您是否也可以指出如何确定您的删除查询的'$ value'? – Korijn 2013-02-28 19:39:43

回答

0

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

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

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

+0

工作。谢谢! – 2013-02-28 19:48:46

0

看起来不像您要关闭的任何地方......

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

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

编辑会导致一个永远不会开始的循环,因为'$ i'将等于'$ counter' – UnholyRanger 2013-02-28 19:55:47

+0

我已经多次使用过这个代码,它从来没有让我失望。 – 2013-02-28 20:20:30

+0

你可能使用过类似的东西,但这段代码是错误的。如果您要更改功能,请更改项目以使其成为如何实施的更好示例。 – UnholyRanger 2013-02-28 20:22:28