|  | 
	                
  
    | 
	 
        [ด่วนมาก]ช่วยหน่อยครับ บันทึกข้อมูลผิดพลาด กับ คิวรี่ข้อมูลด้วยการนับแล้วแสดง     |  
    |  |  
 
	
		|  |  |  |  |  
		|  |  | 
          
            | ข้อแรกครับ จะทำการบันทึกข้อมูล
 แบบฟอร์มครับ
 
  ในที่นี้ ตรง ฟิลด์ สถานะ จะมี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 :
                          920 | 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 |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 |  |