[ด่วนมาก]ช่วยหน่อยครับ บันทึกข้อมูลผิดพลาด กับ คิวรี่ข้อมูลด้วยการนับแล้วแสดง
ข้อแรกครับ
จะทำการบันทึกข้อมูล
แบบฟอร์มครับ
ในที่นี้ ตรง ฟิลด์ สถานะ จะมี2สถานะคือ come = มาเรียน nocome = ไม่มาเรียน
ปัญหาคือ : ถ้าผมเลือกอันสุดท้ายเป็น ไม่มา แต่1-3มา ก็จะกลายเป็นไม่มาหมดเลย
ตรงข้ามกันเวลาลาเลือกอันใดอันสุดท้ายเป็น มา 1-3จะกลายเป็นมาทั้งหมดเลย
โค๊ดหน้าform
<? session_start();
?>
<html>
<head>
<meta charset="UTF-8">
<title>ระบบเช็คชื่อนักเรียนประจำชั้น</title>
</head>
<body>
<form method="post" action="savecheck.php">
<?php
include("connect.php");
$strSQL = "select teacher.C_id,teacher.T_name,class.C_id,class.C_name,student.C_id,student.S_name,student.S_id from teacher,class,student where (class.C_id=teacher.C_id) and (class.C_id = student.C_id)and(teacher.T_id='".$_SESSION["tid"]."')";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<table width="70%" border="1" align="center">
<tr>
<th width="20%"><p class=""align="center">รหัสนักเรียน</p></th>
<th width="40%"><p class=""align="center">ชื่อนักเรียน</p></th>
<th width="20%"><p class=""align="center">สถานะ</p></th>
<th width="20%"><p class=""align="center">หมายเหตุ</p></th>
</tr>
<?php
$_SESSION["i1"]=0;
$i=1;
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td><input type="text" style="border: none"name="S_id<?echo $i;?>" value="<?php echo $objResult["S_id"];?>"readonly></td>
<td><?php echo $objResult["S_name"];?></td>
<td><select name="txtSTT">
<option value="come">มาเข้าแถว</option>
<option value="nocome">ไม่มาเข้าแถว</option>
</select></td>
<td><input type="text" name="txtNote"></td>
</tr>
<?php
$i++;
}
$_SESSION["i1"]=$i;
?>
</table><input type="submit"> </form>
</body>
</html>
โค๊ดหน้าบันทึก(เชื่อมจากหน้า form)
<? session_start(); ?>
<html>
<head>
<meta charset="UTF-8">
<title>บันทึกการเพิ่มข้อมูลนักเรียน</title>
</head>
<body>
<?php
include("connect.php");
$i=1;
while($i<$_SESSION["i1"]){
$strSQL = "INSERT INTO chk ";
$strSQL .="(S_id,STT,Note,ymd) ";
$strSQL .="VALUES ";
$strSQL .="('".$_POST["S_id$i"]."','".$_POST["txtSTT"]."','".$_POST["txtNote"]."',now())";
$objQuery = mysql_query($strSQL);$i++;}
if($objQuery)
{
echo "บันทึกข้อมูลเรียบร้อยแล้ว.";
}
else
{
echo "ผิดพลาด!!! ไม่สามารถบันทึกข้อมูลได้ [".$strSQL."]";
}
//mysql_close($objConnect);
?>
</body>
</html>
ส่วนข้อ 2 คือปัญหาการคิวรี่ข้อมูลโดยนับก่อนแสดง
ส่วนนี้คือ ผมต้องการจะทำตารางแบบนี้ครับ
จากตารางในส่วนของ มาเรียน จะนับ ข้อมูล come จากฐานข้อมูลแล้วแสดงจำนวนตัวเลขครับ
ต่อมา ไม่มาเรียนก็นับข้อมูล nocome จากฐานข้อมูลแสดงตัวเลขด้วยเช่นกันครับ
และช่องรวมคือมาและไม่มารวมกันครับ (ดูจากส่วนที่ 1เลยครับ)Tag : PHP
ประวัติการแก้ไข 2016-05-09 03:39:55
Date :
2016-05-08 14:17:39
By :
bluebloodb
View :
830
Reply :
6
<td><select name="txtSTT">
ตั้งชื่อแบบอันล่าง อ้างอิงแบบเดียวกัน
name="S_id<?echo $i;?>"
ถ้าตั้งชื่อเหมือนกัน ค่าจะเป็นอันสุดท้าย เพราะมันโดนทับจากอันสุดท้าย
Date :
2016-05-08 17:00:52
By :
Chaidhanan
ประยุกต์ใช้เอาเองนะครับ เป็นแค่ตัวอย่าง
Code (SQL)
select c.class_id, sum(t.stt='present') present, sum(t.stt='absent') absent, count(t.stt) total
from tb_class c
left join tb_student s on s.class_id=c.class_id
left join tb_transac t on t.student_id = s.student_id
where t.act_date = '$curdate'
group by c.class_id
Date :
2016-05-09 06:23:24
By :
Chaidhanan
ครับ เป็นตัวแปร alias ที่เอาไปแสดงผลครับ
Date :
2016-05-09 16:25:15
By :
Chaidhanan
Load balance : Server 04