【问题标题】:Add check-box to remove from database in for each loop为每个循环添加复选框以从数据库中删除
【发布时间】:2016-02-10 22:06:01
【问题描述】:

我现在正在学习PHP,开始了一个练习项目来制作一个待办事项列表。 该列表允许用户使用输入字段将数据输入到数据库中,并使用 while 和 foreach 循环来显示数据库中的数据。

我想为每个显示的项目添加一个复选框,允许用户检查他们想要删除列表中的哪些项目,并且复选框的值对应于项目,然后我将添加一个提交按钮,该按钮将清除选中的项目。

我正在使用的数据库表有两列,一个是自动增量 id 列,一个是描述列。

这是循环:

<?php

$query = "SELECT * FROM list_data;";
$list = $mysqli->query($query);

while ($row = $list->fetch_array(MYSQLI_ASSOC)):
    echo "<tr>";

    foreach($row as $list_item) {
        echo "<td>" . $list_item . "</td>";
    }

    echo "</tr>";

endwhile;

?>

我试过了:

foreach ($row as $id => $description) {
    echo "<td>" . $id . $description . "</td>";
}

但出于某种原因,这会返回列名,以及如下值:
id1 描述待办事项列表项目编号一。
id2 descriptionTodo 列表项目编号二。
id3 descriptionTodo 列表项目编号三。
id5 描述待办事项列表项目编号四。

谁能让我走上正确的道路?
如果有人想查看全部内容,我已将项目上传到 github。
提前感谢您的任何帮助和建议。

【问题讨论】:

  • 您的代码中没有复选框元素?也可以尝试使用fetch_assoc
  • 您使用的是MYSQLI_ASSOC,这意味着$list_item 将是[ 'id' =&gt; 1, 'description' =&gt; '....' ]。请改用foreach ( $row as $colname =&gt; $value )
  • 是的,我还没有添加复选框元素,但是我无法将 id 和描述分开,以便我使用 id 值变量作为复选框的值。

标签: php mysql


【解决方案1】:

我不明白你为什么实际上使用 foreach,我会这样做:

<?php

$query = "SELECT * FROM list_data;";
$list = $mysqli->query($query);

while ($row = $list->fetch_array(MYSQLI_ASSOC)):
echo "<tr>";

echo"<td><input type='checkbox' value='".$row['id']."'</td>      <td>".$row['description']."</td>";

echo "</tr>";

endwhile;

?>

【讨论】:

  • 谢谢!当我不需要它时,我试图更改 foreach 循环!现在这很有意义。
猜你喜欢
  • 2013-07-15
  • 2017-12-22
  • 1970-01-01
  • 2016-12-07
  • 2015-09-07
  • 2015-11-13
  • 2015-03-18
  • 1970-01-01
  • 2012-07-20
相关资源
最近更新 更多