我有一個html表單,帶有多個複選框(主題) 當用戶(學生)選擇主題時,StudentID存儲在MySQL表中,並且在單獨的列中進行選擇,但在同一個表中。如何根據複選框值將數據存儲到多個MySQL表中?
我的問題是:如果複選框值「等於」某事,我如何將學生ID存儲在新表中?
例如:
if (strpos($cc,'252000') !== false) {
mysqli_query($dbcon,"INSERT INTO newtable (studentid,ckb)
VALUES ('$studentid','$cc')");
}
全碼:
<?php
$host = 'localhost';
$port = 8889;
$username="root" ;
$password="root" ;
$db_name="db1" ;
$tbl_name="courses" ;
$tbl_name="studentinfo";
$tbl_name="newtable";
$dbcon = mysqli_connect("$host","$username","$password","$db_name") ;
mysqli_set_charset($dbcon, "utf8");
if (!$dbcon) {
die('error connecting to database'); }
$studentid = mysqli_real_escape_string($dbcon, $_GET['studentid']); //echo $studentid;
$name = $_GET['ckb'];
if(isset($_GET['ckb']))
{
foreach ($name as $courses){
$cc=$cc. $courses.',';
}
}
if (strpos($cc,'252000') !== false) {
mysqli_query($dbcon,"INSERT INTO newtable (studentid,ckb)
VALUES ('$studentid','$cc')");
echo "$cc, trtue";
}
HTML
<form action="cdb.php" method="get">
<input name="studentid" type="text" id="studentid" maxlength="11"value="Student ID" />
<input type="checkbox" name="ckb[]" value="251000-1"/>
<input type="checkbox" name="ckb[]" value="251000-2"/>
我想你忘記了用複選框,它只會被髮送到腳本**,如果它被選中**。因此,在你的'$ _GET ['ckb']'你只會得到那些被選中的複選框的值 – RiggsFolly
另外:以逗號分隔的列表存儲數據是一個壞主意**。這意味着每次你想看這些數據時,你都必須編寫代碼來重新打開它,這樣做會導致錯誤。而**更重要的是**它使得數據**更加難以處理**即你將如何編寫一個查詢來讓你所有參加課程251000-1的學生都回來? – RiggsFolly
@RiggsFolly,這就是我想要達到的目標,並且我想到的想法是根據複選框的選擇區分學生ID,例如,如果複選框包含251000,將學生ID插入到CourseA表中至於251000-1和251000-2,我在考慮如果對數據ASCending或DESCending進行排序,我可以更舒適地瀏覽,但我現在想要的是根據他們選擇的課程將學生ID存儲在不同的表中希望這是明確的。 – Azizi