สอบถามการบันทึกค่า checkbox ลงฐานข้อมูล

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา สอบถามการบันทึกค่า checkbox ลงฐานข้อมูล

สอบถามการบันทึกค่า checkbox ลงฐานข้อมูล

สวัสดีครับ คือผมต้องการจะใช้ checkbox เก็บค่าลง ฐานข้อมูลแยก filed แต่ตอนนี้คือมันส่งแต่ค่าสุดท้ายที่เลือกลงฐานข้อมูลแทนครับ

ฐานข้อมูลตาราง student
 

CREATE TABLE `student` (
  `id` int(10) NOT NULL auto_increment,
  `idcard` varchar(18) character set utf8 collate utf8_bin NOT NULL,
  `userid` varchar(100) NOT NULL,
  `password` varchar(100) character set utf8 collate utf8_bin NOT NULL,
  `name` varchar(1000) character set utf8 collate utf8_bin NOT NULL,
  `sex` varchar(5) character set utf8 collate utf8_bin NOT NULL,
  `class` int(10) NOT NULL,
  `room` int(10) NOT NULL,
  `num` int(5) NOT NULL,
  `name_parent` varchar(100) character set utf8 collate utf8_bin NOT NULL,
  `tel` varchar(11) character set utf8 collate utf8_bin NOT NULL,
  `teacher_id_1` varchar(100) character set utf8 collate utf8_bin NOT NULL COMMENT 'teacher_id_1',
  `teacher_id_2` varchar(100) character set utf8 collate utf8_bin NOT NULL COMMENT 'teacher_id_1',
  `address` varchar(1000) character set utf8 collate utf8_bin NOT NULL,
  `score_bad` int(3) NOT NULL,
  `score_good` int(3) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ;

-- 
-- Dumping data for table `student`
-- 

INSERT INTO `student` VALUES (1, 0x31313131313131313131313031, '11101', 0x3131313031, 0xe0b980e0b894e0b987e0b881e0b88ae0b8b2e0b8a2e0b8abe0b899e0b8b6e0b988e0b88720e0b984e0b8a1e0b988e0b8a1e0b8b5e0b8aae0b8ade0b887, 0x2d, 1, 1, 1, 0xe0b899e0b8b2e0b8a2e0b981e0b894e0b88720e0b984e0b8a1e0b988e0b8a1e0b8b5e0b8aae0b8ade0b887, 0x30383132333435363738, 0x31313031, '', 0x2d, 10, 0);
INSERT INTO `student` VALUES (2, 0x31313131313131313131313032, '11102', 0x3131313032, 0xe0b980e0b894e0b987e0b881e0b88ae0b8b2e0b8a2e0b980e0b89ae0b98ae0b899e0b88be0b98c20e0b8a3e0b896e0b88be0b8b4e0b988e0b887, 0x2d, 1, 1, 2, 0xe0b899e0b8b2e0b8a2e0b982e0b8ade0b8a3e0b8aa20e0b8a3e0b896e0b88be0b8b4e0b988e0b887, 0x30383132333435363739, 0x31313031, '', 0x2d, 10, 0);
INSERT INTO `student` VALUES (3, 0x31313131313131313131313033, '11103', 0x3131313033, 0xe0b980e0b894e0b987e0b881e0b88ae0b8b2e0b8a2e0b894e0b8b320e0b983e0b888e0b980e0b894e0b8b5e0b8a2e0b8a7, 0x2d, 1, 1, 3, 0xe0b899e0b8b2e0b887e0b894e0b8b520e0b983e0b888e0b980e0b894e0b8b5e0b8a2e0b8a7, 0x30383132333435363830, 0x31313031, '', 0x2d, 0, 0);
INSERT INTO `student` VALUES (4, 0x31313131313131313131313034, '11104', 0x3131313034, 0xe0b980e0b894e0b987e0b881e0b88ae0b8b2e0b8a2e0b8aae0b8a1e0b89ee0b887e0b8a9e0b98c20e0b884e0b887e0b8a3e0b8b7e0b988e0b899, 0x2d, 1, 1, 4, 0xe0b899e0b8b2e0b887e0b89ee0b8a3e0b8ade0b8b8e0b8a1e0b8b220e0b884e0b887e0b8a3e0b8b7e0b988e0b899, 0x30383132333435363831, 0x31313031, '', 0x2d, 0, 0);
INSERT INTO `student` VALUES (5, 0x31313131313131313131313035, '11105', 0x3131313035, 0xe0b980e0b894e0b987e0b881e0b88ae0b8b2e0b8a2e0b8aae0b8a1e0b88ae0b8b2e0b895e0b8b420e0b8a3e0b8b8e0b988e0b887e0b980e0b8a3e0b8b7e0b8ade0b887e0b984e0b897e0b8a2, 0x2d, 1, 1, 5, 0xe0b899e0b8b2e0b8a2e0b88ae0b8b1e0b8a2e0b8a7e0b8b1e0b892e0b899e0b98c20e0b8a3e0b8b8e0b988e0b887e0b980e0b8a3e0b8b7e0b8ade0b887e0b984e0b897e0b8a2, 0x30383132333435363832, 0x31313031, '', 0x2d, 0, 0);
INSERT INTO `student` VALUES (6, 0x31313131313131313131313036, '11106', 0x3131313036, 0xe0b980e0b894e0b987e0b881e0b8abe0b88de0b8b4e0b887e0b983e0b89ae0b89ae0b8b1e0b8a720e0b888e0b887e0b8a3e0b8b1e0b881e0b8a9e0b98ce0b88ae0b8b2e0b895e0b8b4, 0x2d, 1, 1, 6, 0xe0b899e0b8b2e0b887e0b981e0b8a1e0b989e0b89920e0b888e0b887e0b8a3e0b8b1e0b881e0b8a9e0b98ce0b88ae0b8b2e0b895e0b8b4, 0x30383132333435363833, 0x31313031, '', 0x2d, 0, 0);
INSERT INTO `student` VALUES (7, 0x31313131313131313131313037, '11107', 0x3131313037, 0xe0b980e0b894e0b987e0b881e0b8abe0b88de0b8b4e0b887e0b982e0b89ae0b899e0b8b1e0b8aa20e0b981e0b8a3e0b899e0b894e0b8b2e0b8a5, 0x2d, 1, 1, 7, 0xe0b899e0b8b2e0b8a2e0b8aae0b8a1e0b8b4e0b89720e0b981e0b8a3e0b899e0b894e0b8b2e0b8a5, 0x30383132333435363834, 0x31313031, '', 0x2d, 0, 0);
INSERT INTO `student` VALUES (8, 0x31313131313131313131313038, '11108', 0x3131313038, 0xe0b980e0b894e0b987e0b881e0b8abe0b88de0b8b4e0b887e0b89ee0b8a3e0b8a4e0b894e0b8b520e0b8a8e0b8a3e0b8b5e0b8aae0b8b8e0b89ee0b887e0b8a9e0b98c, 0x2d, 1, 1, 8, 0xe0b899e0b8b2e0b887e0b89ee0b8a3e0b8a4e0b897e0b8b1e0b8a220e0b8a8e0b8a3e0b8b5e0b8aae0b8b8e0b89ee0b887e0b8a9e0b98c, 0x30383132333435363835, 0x31313031, '', 0x2d, 0, 0);
INSERT INTO `student` VALUES (9, 0x31313131313131313131313039, '11109', 0x3131313039, 0xe0b980e0b894e0b987e0b881e0b8abe0b88de0b8b4e0b887e0b89ee0b8ade0b983e0b88820e0b89ee0b8ade0b980e0b89ee0b8b5e0b8a2e0b887, 0x2d, 1, 1, 9, 0xe0b899e0b8b2e0b887e0b8aae0b8b2e0b8a7e0b89ee0b8ade0b894e0b8b520e0b89ee0b8ade0b980e0b89ee0b8b5e0b8a2e0b887, 0x30383132333435363836, 0x31313031, '', 0x2d, 0, 0);
INSERT INTO `student` VALUES (10, 0x31313131313131313131313130, '11110', 0x3131313130, 0xe0b980e0b894e0b987e0b881e0b8abe0b88de0b8b4e0b887e0b899e0b88120e0b8a3e0b8b1e0b881e0b8a9e0b98ce0b984e0b897e0b8a2, 0x2d, 1, 1, 10, 0xe0b899e0b8b2e0b8a2e0b88ae0b8b7e0b988e0b89920e0b8a3e0b8b1e0b881e0b8a9e0b98ce0b984e0b897e0b8a2, 0x30383132333435363837, 0x31313031, '', 0x2d, 0, 0);
<html>
<head>
<title>check box page</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<?php
	include("connect.php");	
		
	$sql = "select * from student where";
	$objQuery = mysql_query($sql);
?>
<form name="form1" method="post" action="add.php">
<table border="1">
	<tr>
		<th>userid</th>
		<th>CH1</th>
		<th>CH2</th>
		<th>CH3</th>
		<th>CH4</th>
	</tr>
	<?php
		while($objResult = mysql_fetch_array($objQuery))
		{
	?>
	<tr>
		<td><?php echo $objResult["userid"]; ?></td><input type="hidden" id="userid" name="userid" value="<?php echo $objResult["userid"]; ?>">
		<td><input type="checkbox" name="<?php echo $objResult["userid"]; ?>" value="1">1</td>
		<td><input type="checkbox" name="<?php echo $objResult["userid"]; ?>" value="2">2</td>
		<td><input type="checkbox" name="<?php echo $objResult["userid"]; ?>" value="3">3</td>
		<td><input type="checkbox" name="<?php echo $objResult["userid"]; ?>" value="4">4</td>
	</tr>
	<?php
		}
	?>
</table>
<input type="submit" name="Submit" value="บันทึกข้อมูล">
</form>
</body>
</html>

หน้าบันทึกข้อมูล (add.php)

<?php
include("connect.php");

$ch1 = $_POST["ch1"];
$ch2 = $_POST["ch2"];
$ch3 = $_POST["ch3"];
$ch4 = $_POST["ch4"];

$sql = "SELECT COUNT(*) FROM student WHERE class = '1' and room = '1'";
$query = mysql_query($sql);
$res = mysql_fetch_array($query);
$sum = $res[0];

$strSQL = "SELECT * FROM student WHERE class = '1' and room = '1'";
$objQuery = mysql_query($strSQL);

while($objResult = mysql_fetch_array($objQuery))
{
	
		$sql1 =  "insert into chbox (userid, ch1, ch2, ch3, ch4) ";
		$sql1 .= "values ";
		$sql1 .= "('$objResult[userid]', '".$_POST["$objResult[userid]"]."' , '$ch2', '$ch3', '$ch4')"; //กำหนดค่าตัวแปลที่เราส่งมา
		$dbquery = mysql_query($sql1);
		if($dbquery)
		{
			echo "Save Done.";
		}
		else
		{
		echo "Error Save [".$sql1."]";
		}

}

mysql_close();

echo "เก็บข้อมูลเรียบร้อยแล้ว<br>";
echo "<a href='form.php'>return</a>";
?>

ต้องการแทรกข้อมูล checkbox ลงตารางนี้ครับ
CREATE TABLE `chbox` (
  `id` int(11) NOT NULL auto_increment,
  `userid` int(5) NOT NULL,
  `ch1` int(1) NOT NULL,
  `ch2` int(1) NOT NULL,
  `ch3` int(1) NOT NULL,
  `ch4` int(1) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

 

รบกวนขอคำแนะนำเพิ่มเติมด้วยครับ



สุรเชษฐ์ วงษ์จำปา 01-02-2019 15:18:17

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
form element  ใดๆ ใน html ถ้าชื่อเหมือนกัน จะใช้ค่าจากตัวสุดท้าย
 
        <td><input type="checkbox" name="<?php echo $objResult["userid"]; ?>" value="1">1</td>
        <td><input type="checkbox" name="<?php echo $objResult["userid"]; ?>" value="2">2</td>
        <td><input type="checkbox" name="<?php echo $objResult["userid"]; ?>" value="3">3</td>
        <td><input type="checkbox" name="<?php echo $objResult["userid"]; ?>" value="4">4</td>
 
name ของทั้ง 4 ตัวเหมือนกัน ตัวที่ถูกติ้กเลือก ตัวสุดท้ายจะถูกส่งค่าไป ให้เปลี่ยนเป็นรูปแบบ array
 
เช่น
 
        <td><input type="checkbox" name="<?php echo $objResult["userid"]; ?>[1]" value="1">1</td>
        <td><input type="checkbox" name="<?php echo $objResult["userid"]; ?>[2]" value="2">2</td>
        <td><input type="checkbox" name="<?php echo $objResult["userid"]; ?>[3]" value="3">3</td>
        <td><input type="checkbox" name="<?php echo $objResult["userid"]; ?>[4]" value="4">4</td>
 
เพิ่มเติมที่บทความ
 
แนวทางการส่งค่า จาก checkbox เพื่อบันทึกข้อมูลแบบ array ใน php http://niik.in/500 


ninenik 01-02-2019
 ความคิดเห็นที่ 2
ขอบคุณมากครับ ทำได้แล้ว


สุรเชษฐ์ วงษ์จำปา 04-02-2019 15:01






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ