|
|
|
สอบถามเรื่องการนับคะแนนแบบทดสอบที่ทำการสุ่มจาก Database โดยใช้ PHP |
|
|
|
|
|
|
|
แยก table ทำไม 5555 อนาคตจะเพิ่มวิชา ก็สร้าง table เพิ่มแบบนี้หรอ - -"
มอง แต่ละวิชา เป็น catagories
มีไปเลย 1 table เก็บชื่อวิชา ไป เอาเปน table subjects
table question อีก 1 table เก็บคำถาม และระบุว่าของวิชาอะไร ทำเป็น selectbox มาให้เลือกดึง วิชามาจาก ตาราง subjects
table answer อีก 1 table เก็บคำตอบ และคะแนน ของแต่ละคำถาม
อนาคตจะเพิ่มวิชา ก็เพิ่มแค่ ที่ subjects
|
|
|
|
|
Date :
2016-01-28 21:09:22 |
By :
progamer2000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือใน table แต่ละวิชาจะเก็บคำถาม ช้อย และ คำตอบ ไว้ค่ะ 1 ข้อ คือ 1 row
เราไม่ได้จะเพิ่มวิชานะคะ คือถ้าจะเพิ่มวิชาก็คือสร้าง 1 table ใหม่ซึ่งจะเอาไว้เก็บชุดคำถามของวิชานั้นๆค่ะ
ไม่ได้เพิ่มแค่ตรง subject แต่เราต้องเพิ่มชุดคำถามเข้าไปค่ะ จุดประสงค์ของเราคือ แสดงแบบทดสอบของแต่ละวิชาในหน้าเดียวกันค่ะ
และคำนวนคะแนนแต่ละวิชาแยกกันหลังจากทำเสร็จ
ซึ่งเราว่ามันเข้าใจง่ายกว่าที่มอง วิชาเป็น catagories
ที่มีปัญหาตอนนี้คือตรงนับคะแนนเท่านั้นอะค่ะ
|
|
|
|
|
Date :
2016-01-28 21:43:29 |
By :
jarainland |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดู code hidden answer value ? มีซ่อนคำตอบไว้ด้วยหรอคับ
|
|
|
|
|
Date :
2016-01-28 21:50:53 |
By :
progamer2000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือดึงออกมาจาก DB เพื่อแสดงและใช้ในการเปรียบเทียบนับคะแนน แต่ว่าซ่อนไว้ไม่ใช้ user เห็นอะค่ะ เป็นแค่ type ของมันเฉยๆค่ะ
|
|
|
|
|
Date :
2016-01-28 21:58:46 |
By :
jarainland |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
type hidden คลิ๊กขวา view source ก็เห็นนะ ถ้า user มีความรู้หน่อยนึง รู้คำตอบเลยเปล่านิ
|
|
|
|
|
Date :
2016-01-28 22:23:59 |
By :
progamer2000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอดู table ทั้ง 3 อันหน่อยคับ มีฟิวอะไรบ้าง
|
|
|
|
|
Date :
2016-01-28 22:25:02 |
By :
progamer2000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แบบนี้อะค่ะ อันนี้ของวิชาวิทย์ อีก 2 วิชาก็เป็นลักษณะนี้เหมือนกันค่ะ
|
|
|
|
|
Date :
2016-01-28 23:02:33 |
By :
jarainland |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หน้ารับค่า ไม่มีตัวรับค่าเลยครับ ใช้ $_POST รับค่า จากหน้าฟอร์มด้วย
คุณไปเอา code เวอชั่นสงครามโลกมาใช้เลยนะนั่น เห็นกระทู้ตั้งเมื่อปี 47 ตอนนี้มัน 59 แล้วนะ - -
|
|
|
|
|
Date :
2016-01-29 00:06:46 |
By :
progamer2000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองเอาไปเล่นดูในคอม นะครับ
Code (PHP)
<?php
$mysqli = mysqli_init();
$mysqli->real_connect('localhost', 'root', 'root', 'test');
$mysqli->set_charset("utf8");
$result = $mysqli->query("SELECT * FROM science");
while($row = $result->fetch_assoc()){
$science[] = $row;
}
$result = $mysqli->query("SELECT * FROM english");
while($row = $result->fetch_assoc()){
$english[] = $row;
}
$result->free();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<base href=".">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="CLUBZATEAM STAFF">
<meta name="keywords" content="">
<meta name="description" content="">
<meta name="robots" content="index,follow">
<title></title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
</head>
<body>
<main class="container">
<div class="col-md-12">
<div class="col-md-2"></div>
<div class="col-md-8 well">
<form class="form-horizontal" name="form" method="post" action="test_result.php">
<h1>Scientific Test</h1>
<hr>
<?php foreach($science as $i => $item){?>
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title"><?php echo ($i+1).' '.$item['question']?></h3>
</div>
<div class="panel-body">
<div class="radio">
<label>
<input type="radio" name="science[<?php echo $item['questionID']?>]" value="1">
<?php echo $item['choice1']?>
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="science[<?php echo $item['questionID']?>]" value="2">
<?php echo $item['choice2']?>
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="science[<?php echo $item['questionID']?>]" value="3">
<?php echo $item['choice3']?>
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="science[<?php echo $item['questionID']?>]" value="4">
<?php echo $item['choice4']?>
</label>
</div>
</div>
</div>
<?php }?>
<h1>English Test</h1>
<hr>
<?php foreach($english as $i => $item){?>
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title"><?php echo ($i+1).' '.$item['question']?></h3>
</div>
<div class="panel-body">
<div class="radio">
<label>
<input type="radio" name="english[<?php echo $item['questionID']?>]" value="1">
<?php echo $item['choice1']?>
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="english[<?php echo $item['questionID']?>]" value="2">
<?php echo $item['choice2']?>
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="english[<?php echo $item['questionID']?>]" value="3">
<?php echo $item['choice3']?>
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="english[<?php echo $item['questionID']?>]" value="4">
<?php echo $item['choice4']?>
</label>
</div>
</div>
</div>
<?php }?>
<button type="submit" class="btn btn-success">ส่งคำตอบ</button>
</form>
</div>
<div class="col-md-2"></div>
</div>
</main>
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
</body>
</html>
Code (PHP)
<?php
$mysqli = mysqli_init();
$mysqli->real_connect('localhost', 'root', 'root', 'test');
$mysqli->set_charset("utf8");
$data = filter_input_array(INPUT_POST);
foreach($data as $i => $item){
$$i = 0;
foreach($item as $n => $myanswer){
$result = $mysqli->query("SELECT answer FROM $i where questionID = '$n'");
$row = $result->fetch_assoc();
if($myanswer == $row['answer']){
++$$i;
}
}
echo "<p>$i ได้คะแนน ".$$i."</p>";
}
$result->free();
?>
Code (SQL)
-- phpMyAdmin SQL Dump
-- version 4.3.11
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: Jan 28, 2016 at 07:49 PM
-- Server version: 5.6.24
-- PHP Version: 5.6.8
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
--
-- Database: `test`
--
-- --------------------------------------------------------
--
-- Table structure for table `english`
--
CREATE TABLE IF NOT EXISTS `english` (
`questionID` int(11) NOT NULL,
`question` varchar(255) DEFAULT '',
`choice1` varchar(255) DEFAULT '',
`choice2` varchar(255) DEFAULT '',
`choice3` varchar(255) DEFAULT '',
`choice4` varchar(255) DEFAULT '',
`answer` int(11) DEFAULT '0'
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
--
-- Dumping data for table `english`
--
INSERT INTO `english` (`questionID`, `question`, `choice1`, `choice2`, `choice3`, `choice4`, `answer`) VALUES
(1, 'What time is it?', '1. 8.00 AM', '2. CAT', '3. RAT', '4. BAT', 1),
(2, 'What is color ?', '1. Car', '2. Bike', '3. Red', '4. Fanta', 3),
(3, 'What xxxx', '1. i don''t know', '2. xxxx', '3. xxxx', '4. xxxx', 1);
-- --------------------------------------------------------
--
-- Table structure for table `science`
--
CREATE TABLE IF NOT EXISTS `science` (
`questionID` int(11) NOT NULL,
`question` varchar(255) DEFAULT '',
`choice1` varchar(255) DEFAULT '',
`choice2` varchar(255) DEFAULT '',
`choice3` varchar(255) DEFAULT '',
`choice4` varchar(255) DEFAULT '',
`answer` int(11) DEFAULT '0'
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
--
-- Dumping data for table `science`
--
INSERT INTO `science` (`questionID`, `question`, `choice1`, `choice2`, `choice3`, `choice4`, `answer`) VALUES
(1, 'แมวมีกี่ขา', '1. 2 ขา', '2. 3 ขา', '3. 4 ขา', '4. 6 ขา', 3),
(2, 'หมามีกี่ขา', '1. 4 ขา', '2. 6 ขา', '3. 8 ขา', '4. ขาขา', 1),
(3, 'คนอะไร', '1. งง', '2. ตอบข้อนี้', '3. ไม่รู้', '4. ตอบข้อ 2', 2);
--
-- Indexes for dumped tables
--
--
-- Indexes for table `english`
--
ALTER TABLE `english`
ADD PRIMARY KEY (`questionID`);
--
-- Indexes for table `science`
--
ALTER TABLE `science`
ADD PRIMARY KEY (`questionID`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `english`
--
ALTER TABLE `english`
MODIFY `questionID` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=4;
--
-- AUTO_INCREMENT for table `science`
--
ALTER TABLE `science`
MODIFY `questionID` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=4;
|
ประวัติการแก้ไข 2016-01-29 01:59:47 2016-01-29 02:04:08
|
|
|
|
Date :
2016-01-29 01:51:28 |
By :
progamer2000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?php
// เวอชั่นขี้เกียจ
$mysqli = mysqli_init();
$mysqli->real_connect('localhost', 'root', 'root', 'test');
$mysqli->set_charset("utf8");
// ข้อสอบที่ต้องการ เพิ่มตรงนี้อย่างเดียว
$exam[] = array('subject'=>'Scientific Test','table'=>'science');
$exam[] = array('subject'=>'English Test','table'=>'english');
// คิวรี่ข้อมูล
foreach($exam as $i => $item){
$result = $mysqli->query("SELECT * FROM {$item['table']}");
while($row = $result->fetch_assoc()){
$subject[$item['table']][] = $row;
}
$result->free();
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<base href=".">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="CLUBZATEAM STAFF">
<meta name="keywords" content="">
<meta name="description" content="">
<meta name="robots" content="index,follow">
<title></title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
</head>
<body>
<main class="container">
<div class="col-md-12">
<div class="col-md-2"></div>
<div class="col-md-8 well">
<form class="form-horizontal" name="form" method="post" action="test_result.php">
<?php foreach($exam as $n => $table){ ?>
<h1><?php echo $table['subject']?></h1>
<hr>
<?php foreach($subject[$table['table']] as $i => $item){?>
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title"><?php echo ($i+1).' '.$item['question']?></h3>
</div>
<div class="panel-body">
<div class="radio">
<label>
<input type="radio" name="<?php echo $table['table'].'['.$item['questionID'].']'?>" value="1">
<?php echo $item['choice1']?>
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="<?php echo $table['table'].'['.$item['questionID'].']'?>" value="2">
<?php echo $item['choice2']?>
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="<?php echo $table['table'].'['.$item['questionID'].']'?>" value="3">
<?php echo $item['choice3']?>
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="<?php echo $table['table'].'['.$item['questionID'].']'?>" value="4">
<?php echo $item['choice4']?>
</label>
</div>
</div>
</div>
<?php }?>
<?php }?>
<button type="submit" class="btn btn-success">ส่งคำตอบ</button>
</form>
</div>
<div class="col-md-2"></div>
</div>
</main>
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
</body>
</html>
|
ประวัติการแก้ไข 2016-01-29 02:30:49
|
|
|
|
Date :
2016-01-29 02:28:33 |
By :
progamer2000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากๆๆๆนะคะ
|
|
|
|
|
Date :
2016-01-29 23:23:47 |
By :
jarainland |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|