【问题标题】:How To Insert data to database from multiple select list using PHP an MySQL如何使用 PHP 和 MySQL 从多个选择列表中将数据插入数据库
【发布时间】:2019-01-08 11:13:40
【问题描述】:

我有一个包含多个选择列表的表单。表单中有多个选择列表(块)。如何将多选数据提交到数据库?

我尝试创建一个 foreach 语句,但问题是它只在数据库中提交一个选项。

    <?php 
$db = mysqli_connect('localhost','root','','trial') or die($db);
if (isset($_POST['submit'])) {
$marks = mysqli_real_escape_string($db,$_POST['marks']);
$subjects= $_POST['subject'];
$farming= $_POST['farming'];
foreach ($subjects as $i) {
    $subject = $i;
    $sql = "INSERT INTO `trial_table` (`subjects`, `marks`) VALUES ('".mysqli_real_escape_string($db,$subject)."', '$marks')";
mysqli_query($db,$sql);
}
$sql1 = "INSERT INTO `trial_table` (`marks`) VALUES ('$marks')";
mysqli_query($db,$sql1);
}
 ?>
<body>
    <form method="POST" action="test.php">
    <select id="multiselect" name="farming[]" multiple="multiple" required>
    <option value="Irrigation">Irrigation</option>
    <option value="Fertilizer">Fertilizer</option>
    <option value="Pesticide">Pesticide</option>    
    </select>
    <select id="multiselect" name="subject[]" multiple="multiple" required>
    <option value="Irrigation">Technology</option>
    <option value="Fertilizer">Science</option>   
     </select>
    <div class="input-group">
        <label>Marks</label>
        <input type="number" name="marks">      
    </div>  
    <button type="submit" name="submit" class="btn">SUBMIT</button> 
      </form>
</body>
</html>`enter code here`

我希望表单能够将选定的数据提交给数据库,而不仅仅是一个。

【问题讨论】:

  • 您在$_POST['farming'];$_POST['subject']; 中的数据是什么?
  • 是的,它们都是来自不同的多重选择列表的数据,分别是farming[]和subject[]
  • 请附上您的问题的 print_r 结果,
  • 我怎样才能附上我很抱歉如果我可以问
  • 这样做 print_r($_POST['subject']);然后在您的页面中,您可以看到一些数据副本并在此处粘贴它们

标签: php mysqli


【解决方案1】:

如果要在单行中插入数据

$subject = implode(',', $subjects);

这将在每个主题之间返回带有分隔符“,”的单个字符串。 现在您可以将整个内容插入到单个列中。

然后使用带有','的explode函数检索它:它会给你相同的数组$subjects;

【讨论】:

    【解决方案2】:

    我已经将它简化到这个级别,但唯一的问题是我在数据库中没有得到任何数据。可能是什么问题/

    if <?php 
    $db = mysqli_connect('localhost','root','','trial') or die($db);
    if (isset($_POST['submit'])) {
    $marks = mysqli_real_escape_string($db,$_POST['marks']);
    $subjects= $_POST['subject'];
    $others= $_POST['others'];
    
    foreach ($others as $t){
    
        $sql1 = "INSERT INTO `trial_table` (`others`) VALUES ('".mysqli_real_escape_string($db,$t)."')";
    mysqli_query($db,$sql1);
    }
    
    foreach ($subjects as $i){
    
        $sql = "INSERT INTO `trial_table` (`subjects`, marks) VALUES ('".mysqli_real_escape_string($db,$i)."' , '$marks')";
    mysqli_query($db,$sql);
    }
    
    
    }
     ?>
    <body>
        <form method="POST" action="test.php">
    
        <select id="multiselect" name="subject[]" multiple="multiple">
        <option value="Irrigation">Technology</option>
        <option value="Fertilizer">Science</option>   
         </select>
         <select id="multiselect" name="others[]" multiple="multiple">
        <option value="Ball">Sports</option>
        <option value="Netball">Gymics</option>   
         </select>
        <div class="input-group">
            <label>Marks</label>
            <input type="number" name="marks">      
        </div>  
        <button type="submit" name="submit" class="btn">SUBMIT</button> 
          </form>
    </body>
    </html>
    

    【讨论】:

      猜你喜欢
      • 2011-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-16
      • 2015-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多