|
|
|
สอบถามวิธีการเก็บคะแนนสอบลงฐานข้อมูลของการทำแบบทดสอบของสมาชิก รบกวนหน่อยนะคะ |
|
|
|
|
|
|
|
ตารางในฐานข้อมูลนะคะ
1. TABLE : ตารางของสมาชิกนะคะ
2. ส่วนนี้เป็นตารางที่สร้างใหม่เพื่อเก็บคะแนนที่ผู้ใช้ได้ทำแบบทดสอบนะคะ (คือตาารางที่ต้องการเก็บคะแนนของแต่ละคนในการทำแบบทดสอบแต่ละครั้งค่ะ)
3. ตารางเก็บข้อสอบค่ะ Table : test
คือ เมื่อสมาชิก ทำแบบทดสอบแล้วก็จะทำการตรวจคะแนนค่ะ แล้วก็จะเก็บคะแนนลงใน table score โดยจะดึงไอดีจากตารางสมาชิกที่ทำด้วยอ่ะคะ อย่าางเช่น เมื่อผู้ใช้ได้ทำแบบทดสอบ ก็จะเก็บคะแนนการสอบแต่ละครั้งไว้ สมาชิกก็สามารถตรวจสอบคะแนนตัวเองที่เคยสอบในแต่ละครั้งได้อ่ะค่ะ ตอนนี้ ติดตรงโค้ดที่จะทำการเก็บคะแนนลงในตารางเก็บคะแนน ลองทำแล้วมันไม่ขึ้นเลยค่ะ รบกวนผู้รู้ด้วยนะคะ
1.)Code ไฟล์ test.php >>> เป็นไฟล์หน้าทำแบบทดสอบนะคะ
Code (PHP)
<?php
session_start();
if (isset($_SESSION['checkSign']) == 'itoffside' AND isset($_SESSION['active']) == 2) {
/*
* include file
*/
include 'config.php';
/*
* set var
*/
$_SESSION['frmAction'] = md5('itoffside.com' . rand(1, 9999));
/*
* logical programming&Database
*/
?>
<!DOCTYPE html>
<html lang="en">
<body>
<form name="signin" action="get-answer.php" method="POST">
<?php
include "condb.php";
$sql ="select * from testitpe"; //ตัวแปรทำหน้าที่เก็บคำสั่ง sql
$result = mysqli_query($conn,$sql);
?>
<!DOCTYPE html>
<html >
<head>
<meta charset="utf-8">
<title >แบบทดสอบ</title>
</head>
<body>
<h4 align="center">แบบทดสอบ </h4>
<h4 align="center">IT Passport Examination </h4>
<br>
</body>
</html>
<?php
$server ="localhost"; //ประกาศตัวแปร 1-4 ถ้าเป็นเครื่องเราเองใส่ Localhost
$username="root";
$password="";
$dbname="itpe";
$conn = mysqli_connect($server,$username,$password,$dbname);
if($conn){ //ถ้าจริงคอนเน็คได้ ติดต่อฐานข้อมูลได้
//echo "ติดต่อฐานข้อมูลได้แล้ว...." ;
}
else{ //else คือแสดงเมื่อเป็นเท็จ
echo "ติดต่อฐานข้อมูลไม่ได้";
}
mysqli_query($conn,"SET NAMES UTF8");//;แสดงผลเป็นภาษาไทย
$sql = "select * from testitpe where test_year like '%" .@$_POST['txt2']. "%'
AND test_time like '%" .@$_POST['txt3']. "%'
AND cat_id like '%" .@$_POST['txt4']. "%'";
$result = mysqli_query($conn,$sql);
$numChoice=1;
while($row=mysqli_fetch_assoc($result)){
echo $numChoice.$row['question'];
echo "<br>";
if($row["image"]!=""){
echo "<img src='im/" .$row["image"] . "' width='200px' height='200px' > ";}
$numChoice++;
?> <br> <input type="radio" name="<?php echo $row['test_id']; ?>" value="1"/> a. <?php echo $row['c1']; ?> <br>
<input type="radio" name="<?php echo $row['test_id']; ?>" value="2"/> b. <?php echo $row['c2']; ?> <br>
<input type="radio" name="<?php echo $row['test_id']; ?>" value="3"/> c. <?php echo $row['c3']; ?> <br>
<input type="radio" name="<?php echo $row['test_id']; ?>" value="4"/> b. <?php echo $row['c4']; ?> <br>
<?php }
mysqli_close($conn);
?>
<input type="submit" name="btnSend" id="btnSend" value="submit"/>
</form>
</div>
</div>
</div>
</body>
</html>
<?php
} else {
echo '
<script language="javascript">
function fncAlert()
{
alert("คุณไม่ได้เข้าสู่ระบบ กรุณาเข้าสู่ระบบก่อนค่ะ :(( !! ");
}
fncAlert();
window.location="formlogin2.php";
</script>
';
}
2.) ไฟล์ Checktest.php เป็นไฟล์ตรวจคะแนนค่ะ
Code (PHP)
<?php
session_start();
if (isset($_SESSION['checkSign']) == 'itoffside' AND isset($_SESSION['active']) == 2) {
/*
* include file
*/
include 'config.php';
/*
* set var
*/
$_SESSION['frmAction'] = md5('itoffside.com' . rand(1, 9999));
/*
* logical programming&Database
*/
?>
<?php
$server ="localhost"; //ประกาศตัวแปร 1-4 ถ้าเป็นเครื่องเราเองใส่ Localhost
$username="root";
$password="";
$dbname="itpe";
$conn = mysqli_connect($server,$username,$password,$dbname);
mysqli_query($conn,"SET NAMES UTF8");//;แสดงผลเป็นภาษาไทย
?>
<form name="signin" action="get-answer.php" method="POST">
<body>
<?php
/*$answer1 = $_POST['1']; //รัยคำตอบข้อ1
echo $answer1;*/
$score=0; //เก็บคะแนนที่ทำได้
$numChoice=1;
foreach($_POST as $choice=> $answer){
if($choice!='btnSend'){
$sql="select test_id from testitpe where test_id={$choice} and answer={$answer}";
$rs = mysqli_query($conn,$sql);
if(mysqli_num_rows($rs)==1){//แสดงว่าตอบถูก
$score=$score+1; //เพิ่มคะแนน
}
echo 'ข้อ :',$numChoice,'ตอบ',$answer,'<br/>';
$numChoice++;
}
}
echo 'คะแนนที่ทำได้',$score,'คะแนน';
?>
</body>
<input type="submit" name="btnSend" id="btnSend" value="ยืนยัน"/>
</form>
<?php
} else {
echo '
<script language="javascript">
function fncAlert()
{
alert("คุณไม่ได้เข้าสู่ระบบ กรุณาเข้าสู่ระบบก่อนค่ะ :(( !! ");
}
fncAlert();
window.location="formlogin2.php";
</script>
';
}
รบกวนผู้รู้ด้วยนะคะ ตั้งกระทู้ผิดพลาดยังไงขออภัยด้วยจ้าา
Tag : PHP, MySQL, jQuery, XAMPP
|
ประวัติการแก้ไข 2018-09-30 01:40:48 2018-09-30 01:42:28 2018-09-30 01:47:03
|
|
|
|
|
Date :
2018-09-30 01:32:26 |
By :
maryme2 |
View :
2169 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1.การใช้ Tag html มีแค่ตัวเดียวก็พอครับ ตัวนี้ที่ผมเห็นใส่ซ้อนกัน
2.ส่วนการบันทึกข้อมูลทำไปเป็นขั้นตอนครับ ซึ่งที่จริงคุณก็ทำแบบนั้นละแต่ลอจิกมันโหดเกิน
ลองปรับใหม่ดูอีกที
3.ที่ว่า การเพิ่มคะแนนเข้าตารางไม่ได้ ตอนแรก ได้คะแนนมาหรือยังครับสามารถแสดงคะแนนได้หรือป่าว ถ้าได้คะแนนแล้วต่อไปก็ทำการ
INSERT (ผมไม่เห็น CODE INSERT)เข้าฐานข้อมูลได้เลยครับ โดยอ้างอิงจาก ID ผู้ที่ Login เข้าระบบ
ลองดูครับ สู้ ๆ
|
|
|
|
|
Date :
2018-10-22 16:34:56 |
By :
nobetaking |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ก่อนจะทำอะไร ตรวจสอบข้อมูลก่อนว่ามันมาครบไหม
echo '<pre>',print_r($_POST, true),'</pre>'; exit;
|
|
|
|
|
Date :
2018-10-22 20:21:17 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|