|
|
|
เราจะนับจำนวนค่า record ในตาราง เฉพาะบางค่า ยังไงครับ |
|
|
|
|
|
|
|
ตั้งคำภถามใหม่ดีๆมีสติหน่อยครับ ว่าอยากได้แบบไหน
ใช้ num_row or count ถูก แล้วครับ
แนวทาง(PHP)
<?php
$SEL = mysqli_query($conn," SELECT Count(EnterExam) as InExam ,Count(Pass) as PassExam, Count(NotPass) as NotExam,DateExam FROM Exam WHERE ExamDate >= '".$_POST["date1"]."' AND ExamDate <= '".$_POST["date2"]."' ")
$row = mysqli_fetch_array($SEL)
echo $row["InExam"]; // คนที่เข้ามาสอบ Count
echo $row["PassExam"]; // คนที่เข้ามาสอบ Count pass
echo $row["NotExam"]; // คนที่เข้ามาสอบ Count not pass
or
$Num = mysqli_num_rows($SEL);
?>
เป็นแนวทางให้ไปคิดน่ะครับ ไปอ่าน ความหมาย mysql_num_rows และ Count น่ะครับ
|
|
|
|
|
Date :
2018-07-14 08:56:45 |
By :
Hararock |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าเอาตามโค้ดที่ให้มาเลยก็เขียน 3 ชุด
$sql1 = "SELECT * FROM exam WHERE exam_status_one = 'ทั้งหมด'";
..
..
..
$sql2 = "SELECT * FROM exam WHERE exam_status_one = 'ผ่าน'";
..
..
..
$sql3 = "SELECT * FROM exam WHERE exam_status_one = 'ไม่ผ่าน'";
..
..
..
|
|
|
|
|
Date :
2018-07-14 20:55:39 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากครับผมลองของทั้งสองท่านแล้วยังไม่ได้ ผมเลยลองมั่วๆ เอาอีกที ตอนนี้ได้แล้วครับ
โค้ดประมาณนี้
Code (SQL)
$sql = "SELECT COUNT(*) FROM exam";
$result = mysqli_query($conn,$sql) or die (mysqli_error($conn) . "<br>$sql");
$row = mysqli_fetch_row($result);
$all = $row[0];
$sql = "SELECT COUNT(*) FROM exam WHERE exam_status_one = 'ไม่ผ่าน'";
$result = mysqli_query($conn,$sql) or die (mysqli_error($conn) . "<br>$sql");
$row = mysqli_fetch_row($result);
$fail = $row[0];
$sql = "SELECT COUNT(*) FROM exam WHERE exam_status_one = 'ผ่าน'";
$result = mysqli_query($conn,$sql) or die (mysqli_error($conn) . "<br>$sql");
$row = mysqli_fetch_row($result);
$pass = $row[0];
Code (PHP)
<div class="col-xs-9 text-right">
<div class="huge">จำนวนคนที่เข้าสอบ <?=$all;?> คน</div>
</div>
<div class="col-xs-9 text-right">
<div class="huge">จำนวนคนที่ผ่านการสอบ <?=$pass;?> คน</div>
</div>
<div class="col-xs-9 text-right">
<div class="huge">จำนวนคนที่ไม่ผ่านการสอบ <?=$fail;?> คน</div>
</div>
อยากจะถามว่ามันจะมีปัญหาอะไรภายหลังรึป่าวครับถ้าผมเขียนโค้ดแบบที่ผมเขียนไป
|
ประวัติการแก้ไข 2018-07-17 14:47:15 2018-07-17 14:47:38 2018-07-17 14:48:05 2018-07-17 14:49:12
|
|
|
|
Date :
2018-07-17 14:46:28 |
By :
brad98 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
การเขียน code นั้นทำได้หลายวิธีครับ ใช้ได้ไม่ผิด แต่อันไหนจะมีประสิทธิภาพ หรือ performance ที่ดีก็ต้องลองศึกษาดู เช่น
-------------------------
1) มีคนสอบ 100 มีคนสอบผ่าน 40 คน คงไม่ต้องไป query อีกครั้งเพื่อให้ได้คนไม่ผ่าน 60 คน (ใช้ลบเอาก็ได้)
2) การเลือกใช้คำสั่ง sql command
- select
- select count
- select count(distrinct ???) from tableA group by coloumn1 order by column1
เช่น SELECT exam_status_one , count(distinct exam_status_one) as total FROM exam group by exam_status_one order by exam_status_one asc
3) การเขียน function หรือ procedure
4) และวิธีการอื่นๆ อีกมากมาย
แต่วิธีไหนที่ไม่ทำให้ database server load หรือวิธีไหนลดการ query ไปยัง server บ่อยๆ ได้ก็น่าจะดี
|
ประวัติการแก้ไข 2018-07-18 15:18:14
|
|
|
|
Date :
2018-07-18 15:16:46 |
By :
ccjpn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (SQL)
select
count(*) all_exam
, sum( exam_status_one = 'ไม่ผ่าน') no_pass
, sum( exam_status_one = 'ผ่าน') pass
from table_name
|
|
|
|
|
Date :
2018-07-18 17:00:26 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากครับเดี๋ยวผมจะนำไปปรับปรุงเพื่อเสถียรภาพของระบบ
|
|
|
|
|
Date :
2018-07-19 09:19:46 |
By :
brad98 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|