生成一个查询,该查询更改多行 PHP MySQL 上的单个元素


Generate a query that changes a single element on multiple rows PHP MySQL

我正在做一个涉及PHP的家庭作业。基本上,我有一个页面,其中包含一个呈现从数据库中提取的项目的 Web 表单。每行都有复选框和 2 个单选按钮。用户选择"接受"或"拒绝",单击提交时,选中的项目应更改为该审批状态。表格中的所有项目都已提交到邮政中。我认为 post 是一个数组,所以我可以使用带有计数器的 while 循环,以便循环遍历数组以及何时到达最后一个索引(应包含批准或拒绝)。将生成一个查询,该查询将前面的所有索引更改为批准或拒绝。如果这没有多大意义,我很抱歉。这是一张图片,用于更多说明

这是我用来生成网络表单的代码:

<?php
       #create a query string
       $query = "SELECT * FROM Request WHERE superemail = '$user'";
       #echo $query;
       #run the query
       $result = mysqli_query($link, $query) or die('error querying');
       while($row = mysqli_fetch_array($result)){
              #print out each row of the queryi
              #line up the query results with temporary strings
              $change = $row['KEY'];
              $name = $row['first']. " " . $row['last'];
              #echo $name;
              $email = $row['email'];
              #echo $email;
              $type = $row['type'];
              #echo $type;
              $duration = $row['duration'];
              $status = $row['status'];
              #create a table row with the query results
              echo "<tr><td><input type=checkbox name=$change /></td>
              <td>$name</td>
              <td>$email</td><td>$type</td>
              <td>$duration</td><td>$status</td></tr>";
      } #end while
  ?>
  <label for=update>Change status to:</label><br />
  <input type=radio name=update value=A />Approved<br />
  <input type=radio name=update value=D />Denied<br />
  <input type = submit value = "Change Status" />
html中的每个

input标签(复选框和单选按钮)都应该有一个name属性,例如:<input type='radio' name='accept' value='1' />。 当 PHP 提交和处理表单时,您的脚本将能够以$_POST['accept']访问该信息(或$_GET['accept'],具体取决于表单的方法)。

因此,您应该能够为单选按钮指定一个名称,然后检查该索引处的 POST 数组中是否有值。

我将假设一些事情。首先,您的设计目标是仅处理审批队列中您选择选择的项目,而忽略其他项目。其次,您希望将其状态更改为单选按钮中选择的状态。第三,你既需要代码片段,也需要关于任务如何完成的解释。

所以,在这里。

您有一系列复选框;我假设它们具有相同的名称。如果您希望将值作为数组传递给 PHP,则绝对需要whatever[]强调[]来命名输入!这就是从复选框创建一个数组以显示在 $_POST/$_GET 中的原因。只有那些选定的项目才会出现在数组中。该值应该是有用的东西(例如相应数据库表中的值),您可以选择并查询...当然,在清理输入之后。

因此,您的 HTML 输入标记应如下所示:

<input type="checkbox" name="process[]" value="<?php echo $employeeName ?>" >

你应该有这个回来给你...

$_POST['process'][array(0=>name1, 1=>name2/*...etc*/)]

。您可以在闲暇时用 foreach 循环播放。