簡體   English   中英

向MySQL提交復選框時出錯

[英]Error when submitting checkbox to MySQL

我有以下用於將表單提交到數據庫的php代碼,唯一的問題是復選框...提交表單時顯示

警告:join()[function.join]:在第16行的/srv/disk6/1662822/www/website.co.nf/connect-mysql.php中傳遞了無效的參數

<?php
    $host="host.com" ;
    $username="1662822_db1" ;
    $password="awesomepassword" ;
    $db_name="1662822_db1" ;
    $tbl_name="courses" ;
        $dbcon = mysqli_connect("$host","$username","$password","$db_name") ;           

        if (!$dbcon) {
        die('error connecting to database'); }

        echo 'Courses successfully registerd , ' ;  

    // escape variables for security
    $studentid = mysqli_real_escape_string($dbcon, $_POST['studentid']); echo $studentid;
    **$ckb = join (', ', $_POST['ckb']);** 


    **$sql="INSERT INTO courses (studentid, ckb)
    VALUES ('$studentid', '$ckb')";**

    if (!mysqli_query($dbcon,$sql)) {
    die('Error: ' . mysqli_error($dbcon));
}
echo "  Thank you for using IME Virtual Registeration  ";   
        mysqli_close($dbcon);
?>

錯誤是警告: join()[function.join]:在第16行的/srv/disk6/1662822/www/website.com/connect-mysql.php中傳遞了無效的參數

我了解它與join函數有關(顯然),但我不知道它是什么...

復選框的HTML代碼

<input type="checkbox" name="ckb" value="strenthofmaterials";>
<label for="StrengthofMaterials"> Strength Of Materials </label>
<input type="checkbox" name="ckb" value="dynamics";>
<label for="StrengthofMaterials"> dynamics </label>

對於所有其他選擇,僅更改每個復選框的值即可

另一則信息是,mysql數據庫中的ckb字段類型為tinyint,默認值為0 ...而我猜測它不是我要查找的類型...。

您的復選框應為數組形式...

<input type="checkbox" name="ckb[]" value="strenthofmaterials";>
<label for="StrengthofMaterials"> Strength Of Materials </label>
<input type="checkbox" name="ckb[]" value="dynamics";>
<label for="StrengthofMaterials"> dynamics </label>

注意:它是ckb[]而不是ckb

$ckb = array();
foreach($_POST['checkbox'] as $val){
    $ckb[] = (int) $val;
}
$ckb = implode(',', $ckb);

試試這個。 $ ckb應該是一個數組。 為了安全起見,$ val被轉換為整數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM