php - 将表单中的所有用户值提交到数据库中

标签 php mysql sql forms foreach

这列出了数据库中的所有人员,并为每个人提供了一个下拉列表,我想这样做,这样当我点击一个提交按钮时,它就会为每个人输入单独的值。

因此,如果您为 bobby 指定“yes”,为 mark 指定“no”,为dustin 指定“yes”,您可以在 pres 提交后输入该值,以获取这些值

$results = mysql_query("SELECT * FROM `$tabeluser` WHERE buss='$buss' ORDER BY id DESC LIMIT 1");
while($rows = mysql_fetch_array($results) )
{   
        fn = $_POST['firstname'];
        echo $fn;
        ?>
        <form>

        <select name="check">
                <option>no</option>
                <option>yes</option>
        </select>
        <?php
        <input type="submit" name="submit">
        ?>
        <form>
        <?php
}
mysql_query("INSERT INTO `$fn` (buss) VALUES ('$_POST[check]')");

最佳答案

首先,您创建一个 <form>和一个 submit您拥有的每条记录的按钮。这是错误的,因为您想一次更新多个值。
它应该是什么样子:

<form>
<?php
  while($rows = mysql_fetch_array($results)) {
    print '<select name="check[]"> .. </select>';
  }
?>
<input type="submit" name="submit" />
</form>

其次,您的代码的格式就好像您希望在将代码发送到浏览器后立即获得 $_POST[check] 一样。 PHP 不是这样工作的。在打印实际页面内容之前,您需要分离发布值的逻辑。 PHP 是服务器端,这意味着它不会获取任何数据,除非从一开始就调用脚本。所以,看起来应该是这样的:

 <?php
   if (isset($_POST["check"])) {
     // handle posted data.
   }
   else {
     // show form
   }
   // or show form here, without an else, if you want to always show a form,
   // even when you have posted values.
 ?>

最后但并非最不重要的一点是,您需要找到一种方法来了解哪个发布值属于您的每条记录。按照您现在的方式( <select name="check">') it will just return you one single value.<br/> If you write it the way I intentionally did above ( `),您将获得所有值,但您仍然无法轻松识别每个记录的值。 相反,您可能想要执行以下操作的最终结果:

<?php
   // get mysql records into an array (say $my_array)
   if (isset($_POST["submit"])) {
     foreach($my_array as $record) {
       if (isset($_POST["select_of_id_".$record["id"])) {
         // insert additional value into db
       }
     }
   }
   print '<form>';
   foreach($my_array as $record) {
     print '<select name="select_of_id_'.$record["id"].'">';
     print '<option value="0">no</option><option value="1">yes</option>';
     print '</select>';
   }
   print '<input type="submit" name="submit"/>';
   print '</form>';
?>

关于php - 将表单中的所有用户值提交到数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19263042/

相关文章:

php - 创建 sql 语句时遇到问题 select 语句引用同一个表两次

sql - PostgreSQL - 将查询结果分成五分位数

php - Doctrine 迁移 : adding and removing two foreign key columns to existing table is not working

php - 使用 php 将 JSON 结果编码为 UTF8

php - 保存并从 sql 获取哈希值

mysql - 检索 MySQL 点类型的坐标

SQL Server 2005,语法错误

php - 通过两个步骤/两种形式登录(不意味着 2 因素身份验证!)

javascript - 如何在 PHP 和 Javascript 中转义字符?

php - 如何使用 mysql 和 php 让 UTF8 正常工作?