簡體   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