我有一个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