繁体   English   中英

使用php在数据库的单列中插入多个值

[英]Insert multiple values in single column of database using php

我想使用php在数据库中插入多个复选框值。 但是使用此代码,它不会插入数据库中。 请告诉我有什么问题以及解决方法。 现在,当我检查生物和物理学时,我想将它们添加到数据库的单列中。

这是HTML部分

    <select value="class" class="wp-form-control">
        <option value="Select your class" >Select your class</option>
        <option value="10th" onclick="myFunction()">10th</option>
        <option value="12th" onclick="myFunction1()">12th</option>
    </select>

    <div id="mydiv" style="display:none">   
       <input type="checkbox" name="subject[]" value="1">bio<br>
       <input type="checkbox" name="subject[]" value="2">phy<br>
       <input type="submit" value="Calculate" name="submit" class="wpcf7-submit">
     </div>

    <div id="mydiv1" style="display:none">
        <input type="checkbox" name="subject[]" value="3">maths<br>
        <input type="checkbox" name="subject[]" value="4">sciecne<br>
         <input type="submit" value="Calculate" name="submit" class="wpcf7-submit">

    </div>

这是PHP的一部分

    <?php 
    $host = 'localhost:3306';  
    $user = 'root';  
    $pass = '';  
    $dbname = 'wpf';  

    $conn = mysqli_connect($host, $user, $pass,$dbname);  
    if(!$conn){  
      die('Could not connect: '.mysqli_connect_error());  
    }  

    if(isset($_POST['submit'])) {

        if(isset($_POST['subject'])) {
            $classes=$_POST['subject'];

            $c=count($classes);
            $price=0;
            for($i=0;$i<$c;$i++) {
                if($classes[$i]==1) {
                    $price+=200;
                }
                if($classes[$i]==2){
                    $price+=300;
                }

                if($classes[$i]==3){
                    $price+=400;
                }
                if($classes[$i]==4) {
                    $price+=500;
                }
            }
            $chk="";
            foreach($classes as $sub) {
                $sub.= $sub.",";
            } 

            if($classes) {

                $insert="INSERT INTO feedetails 
                                (subjects,price) 
                         VALUES ('$sub',$price')";  

                if(mysqli_query($conn,$insert)) {
                    echo ("<SCRIPT LANGUAGE='Javascript'>
                        window.alert('Your fee has been updated.Please proceed to pay.');
                        window.location.href='payment.php';
                    </SCRIPT>");
                }
            }   
        }else{
            echo ("<SCRIPT LANGUAGE='Javascript'>
            window.alert('Please select atleast one subject to proceed');
            </SCRIPT>");
        }
    }
    ?>

我尝试了implode()函数,但无法正常工作。

您可以在数据库的不同列中插入值,也可以使用爆破并将值保存到一列中

$_POST['subject']应该是一个数组。

$subject = implode(',', (array)$_POST['subject']);

$query="INSERT INTO feedetails (subjects,price) VALUES ('".$subject."','".$price."')";

您也可以像这样通过一个查询插入多个项目

    $query = "INSERT INTO feedetails (subjects,price) VALUES ";
    for ($z=0; $z < count($subject); $z++) {
        $query .= "('" . $subject[$z] . "','".$price."'),";
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM