|
|
|
ช่อยแนะนำหน่อยนะคะ สอบถามเรื่องการดึงข้อมูลออกมาคำนวณค่ะ |
|
|
|
|
|
|
|
ขอตัวอย่างข้อมูลจากเทเบิ้ลที่แสดงอยู่ได้มั๊ยครับ export แล้วเอามาวางไว้
เพราะจะช่วยได้ง่ายกว่ามานั่งเดาโค้ด
|
|
|
|
|
Date :
2013-03-22 11:19:43 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตาราง collected (ผลการประเมิน)
Code (SQL)
CREATE TABLE `collected1` (
`id_c` int(3) NOT NULL auto_increment,
`id_user` varchar(6) collate utf8_unicode_ci NOT NULL,
`q1` int(1) NOT NULL,
`q2` int(1) NOT NULL,
`q3` int(1) NOT NULL,
`q4` int(1) NOT NULL,
`q5` int(1) NOT NULL,
`q6` int(1) NOT NULL,
`q7` int(1) NOT NULL,
`q8` int(1) NOT NULL,
`q9` int(1) NOT NULL,
`q10` int(1) NOT NULL,
`q11` int(1) NOT NULL,
`q12` int(1) NOT NULL,
`q13` int(1) NOT NULL,
`q14` int(1) NOT NULL,
`q15` int(1) NOT NULL,
`Suggestions` varchar(250) collate utf8_unicode_ci NOT NULL,
`m_id` varchar(100) collate utf8_unicode_ci NOT NULL,
`ver` varchar(2) collate utf8_unicode_ci NOT NULL,
`teacher` varchar(100) collate utf8_unicode_ci NOT NULL,
`add` varchar(100) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id_c`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=108 ;
--
-- dump ตาราง `collected1`
--
INSERT INTO `collected1` VALUES (101, 'asf100', 4, 5, 4, 4, 4, 4, 4, 4, 3, 1, 2, 5, 5, 4, 3, 'ดีมากๆ', 'การผลิตสื่อการสอน', '1', 'Mr.abc', 'บางปะกอก');
INSERT INTO `collected1` VALUES (102, 'asf003', 1, 3, 4, 5, 5, 2, 4, 4, 4, 5, 5, 3, 2, 4, 1, 'dsffvggfd', 'การผลิตสื่อการสอน', '1', 'Mr.abc', 'บางปะกอก');
INSERT INTO `collected1` VALUES (103, 'asf002', 1, 5, 5, 5, 5, 2, 3, 3, 4, 5, 3, 4, 5, 5, 3, '', 'การผลิตสื่อการสอน', '1', 'Mr.abc', 'บางปะกอก');
INSERT INTO `collected1` VALUES (104, 'asf001', 5, 5, 5, 5, 5, 3, 3, 3, 4, 5, 3, 4, 5, 5, 3, 'asadadasd', 'การผลิตสื่อการสอน', '1', 'Mr.abc', 'บางปะกอก');
INSERT INTO `collected1` VALUES (105, 'asf004', 3, 5, 6, 4, 2, 3, 2, 5, 2, 4, 3, 5, 5, 1, 2, '', 'การผลิตสื่อการสอน', '2', 'Mr.abc', 'บางปะกอก');
INSERT INTO `collected1` VALUES (106, 'asf005', 4, 5, 2, 1, 5, 4, 3, 2, 1, 4, 5, 1, 4, 5, 4, '', 'การผลิตสื่อการสอน', '2', 'Mr.abc', 'บางปะกอก');
INSERT INTO `collected1` VALUES (107, 'asf006', 0, 5, 4, 2, 4, 5, 1, 5, 4, 3, 5, 4, 3, 4, 5, 'ดีเยี่ยม', 'การผลิตสื่อการสอน', '2', 'Mr.abc', 'บางปะกอก');
|
|
|
|
|
Date :
2013-03-22 12:31:18 |
By :
yonlada |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตาราง cousemain (ตารางหลักสูตร)
Code (SQL)
CREATE TABLE `coursemain` (
`m_id` int(3) NOT NULL auto_increment,
`course` varchar(100) NOT NULL,
PRIMARY KEY (`m_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=106 ;
--
-- dump ตาราง `coursemain`
--
INSERT INTO `coursemain` VALUES (101, 'พื้นฐานการใช้งาน Windows 7');
INSERT INTO `coursemain` VALUES (102, 'การใช้ซอฟแวร์ประยุกต์');
INSERT INTO `coursemain` VALUES (103, 'การใช้ซอฟแวร์ระบบ');
INSERT INTO `coursemain` VALUES (104, 'มัลติมีเดียและกราฟิก');
INSERT INTO `coursemain` VALUES (105, 'การผลิตสื่อการสอน');
|
|
|
|
|
Date :
2013-03-22 12:34:42 |
By :
yonlada |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
สุดท้ายค่ะ ตาราง version (ตารางรุ่น)
Code (SQL)
CREATE TABLE `version` (
`v_id` int(3) NOT NULL auto_increment,
`ver` int(3) NOT NULL,
PRIMARY KEY (`v_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=251 ;
--
-- dump ตาราง `version`
--
INSERT INTO `version` VALUES (110, 1);
INSERT INTO `version` VALUES (120, 2);
INSERT INTO `version` VALUES (130, 3);
INSERT INTO `version` VALUES (140, 4);
INSERT INTO `version` VALUES (150, 5);
INSERT INTO `version` VALUES (160, 6);
INSERT INTO `version` VALUES (170, 7);
INSERT INTO `version` VALUES (180, 8);
INSERT INTO `version` VALUES (190, 9);
INSERT INTO `version` VALUES (200, 10);
INSERT INTO `version` VALUES (210, 11);
INSERT INTO `version` VALUES (220, 12);
INSERT INTO `version` VALUES (230, 13);
INSERT INTO `version` VALUES (240, 14);
INSERT INTO `version` VALUES (250, 15);
|
|
|
|
|
Date :
2013-03-22 12:37:05 |
By :
yonlada |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้ค่ะ ขอบคุณล่วงหน้าเลยค่ะ
|
|
|
|
|
Date :
2013-03-22 12:44:55 |
By :
yonlada |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
บรรทัดที่ 67 เปิด for ไว้แต่ยังไม่มี } ปิดครับ
บรรทัดที่ 74 ไม่มี </td> ปิดอ่ะครับ
|
|
|
|
|
Date :
2013-03-22 13:26:01 |
By :
aaa |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใส่ครบแล้วนะคะ copy โค้ดมาไม่หมดค่ะ
|
|
|
|
|
Date :
2013-03-22 14:03:05 |
By :
yonlada |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองดูนะครับ มันยังไม่ใช่วิธีที่ดีที่สุด แต่น่าจะตรงความต้องการนะครับ ตรวจสอบเรื่องความพอใจอีกครั้งนะครับ เพราะว่าผมทำแบบลวกๆ
Code (PHP)
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<form id="form1" name="form1" method="GET" action="<?=$_SERVER['PHP_SELF']?>" />
เลือกหลักสูตร<label>
<select name="course" id="course" >
<option value="0" selected="selected"> กรุณาเลือกหลักสูตร</option>
<?
$dbcon=mysql_connect("localhost","root","root");
$dbname=mysql_select_db("job1",$dbcon);
$dbquery=mysql_query("SET NAMES UTF8");
$course=$_POST['m_id'];
$strSQL = "SELECT * FROM coursemain ORDER BY m_id ASC";
$objQuery = mysql_query($strSQL);
while($objResult = mysql_fetch_array($objQuery))
{
if($course == $objResult['course']){
}
?>
<option value="<?=$objResult["course"];?>" >
<?=$objResult["course"];?>
</option>
<?
}
?>
</select>
</label>
เลือกรุ่น
<label>
<select name="ver" id="ver" >
<option value="0" selected="selected">กรุณาเลือกรุ่น</option>
<?
$ver=$_POST['v_id'];
$strSQL = "SELECT * FROM version ORDER BY v_id ASC";
$objQuery = mysql_query($strSQL);
while($objResult = mysql_fetch_array($objQuery))
{
if($ver == $objResult['ver']){
}
?>
<option value="<?=$objResult["ver"];?>" >
<?=$objResult["ver"];?>
</option>
<?
}
?>
</select>
</label>
<label>
<input type="submit" name="ค้นหา" id="ค้นหา" value="Submit" />
</label>
</form>
<table width="92%" border="1" align="center" cellspacing="2">
<tr>
<td height="50" colspan="2" bgcolor="#E0E0E0"><strong>เนื้อหาหลักสูตร</strong></td>
<td bgcolor="#E0E0E0"><strong><center>5</center></strong></td>
<td bgcolor="#E0E0E0"><strong><center>4</center></strong></td>
<td bgcolor="#E0E0E0"><strong><center>3</center></strong></td>
<td bgcolor="#E0E0E0"><strong><center>2</center></strong></td>
<td bgcolor="#E0E0E0"><strong><center>1</center></strong></td>
<td bgcolor="#E0E0E0"><strong><center>ค่าเฉลี่ย</center></strong></td>
<td bgcolor="#E0E0E0"><strong><center>ระดับ</br>ความพึงพอใจ</center></strong></td>
</tr>
<?php
$sql1 = "select count(q1) as q1 from collected1 where q1='5' and ver='".$_GET["ver"]."' and m_id='".$_GET['course']."'";
$rs1 = mysql_query($sql1);
$arr1 = mysql_fetch_array($rs1);
$sql2 = "select count(q1) as q2 from collected1 where q1='4' and ver='".$_GET["ver"]."' and m_id='".$_GET['course']."'";
$rs2 = mysql_query($sql2);
$arr2 = mysql_fetch_array($rs2);
$sql3 = "select count(q1) as q3 from collected1 where q1='3' and ver='".$_GET["ver"]."' and m_id='".$_GET['course']."'";
$rs3 = mysql_query($sql3);
$arr3 = mysql_fetch_array($rs3);
$sql4 = "select count(q1) as q4 from collected1 where q1='2' and ver='".$_GET["ver"]."' and m_id='".$_GET['course']."'";
$rs4 = mysql_query($sql4);
$arr4 = mysql_fetch_array($rs4);
$sql5 = "select count(q1) as q5 from collected1 where q1='1' and ver='".$_GET["ver"]."' and m_id='".$_GET['course']."'";
$rs5 = mysql_query($sql5);
$arr5 = mysql_fetch_array($rs5);
$averrage = $arr1['q1']+$arr2['q2']+$arr3['q3']+$arr4['q4']+$arr5['q5']/5;
if($averrage>5){
$text = "ดีมาก";
}
if($averrage<=4){
$text = "ดี";
}
if($averrage<=3){
$text = "พอใช้";
}
if($averrage<=2){
$text = "ต่ำ";
}
if($averrage<=1){
$text = "แย่";
}
if($averrage <=0){
$text = "แย่มาก";
}
?>
<tr>
<td width="3%" bgcolor="#FFFFFF"><center><?=$i?></center></td>
<td width="53%" height="35" bgcolor="#FFFFFF"><?=$_GET['course']?> </td>
<td width="6%" bgcolor="#FFFFFF"><center><?=$arr1['q1']?></center></td>
<td width="6%" bgcolor="#FFFFFF"><center><?=$arr2['q2']?></center></td>
<td width="6%" bgcolor="#FFFFFF"><center><?=$arr3['q3']?></center></td>
<td width="6%" bgcolor="#FFFFFF"><center><?=$arr4['q4']?></center></td>
<td width="6%" bgcolor="#FFFFFF"><center><?=$arr5['q5']?></center></td>
<td width="6%" bgcolor="#FFFFFF"><center><?=$averrage?></center></td>
<td width="6%" bgcolor="#FFFFFF"><center><?=$text?></center></td>
</tr>
</table>
|
|
|
|
|
Date :
2013-03-22 14:13:39 |
By :
Dragons_first |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Quote:เนื่องจากการออกแบบเทเบิ้ลที่มีข้อจำกัดมากมาย (ไม่สามารถเพิ่มคำถามได้ ต้องแก้ไขโครงสร้างเทเบิ้ลกันเลย)
รวมถึงเรียกดูข้อมูลด้วยคำสั่ง SQL ก็ยากยิ่ง เพราะออกแบบในลักษณะแนวราบ (เก็บคะแนนเรียงต่อกันในเรคคอร์ดเดียว)
การออกแบบเทเบิ้ลในลักษณะนี้ควรแก้ไขใหม่เป็นดังนี้
user_id (รหัสผู้ทำแบบสอบถาม), question_id(เลขลำดับของคำถาม) , answer_id(เลขลำดับของคำตอบ) , score(คะแนน)
แต่เมื่อมาถึงจุดนี้เราคงแก้ไขอะไรไม่ได้
ทดลองดูน่ะครับ
<table width="92%" border="0" align="center" cellspacing="0">
<tr>
<td height="50" colspan="8"><table width="100%" border="2" cellpadding="0" cellspacing="0" bordercolor="black">
<tr>
<td height="50" colspan="2" bgcolor="#E0E0E0"><strong>เนื้อหาหลักสูตร</strong></td>
<td bgcolor="#E0E0E0"><strong><center>5</center></strong></td>
<td bgcolor="#E0E0E0"><strong><center>4</center></strong></td>
<td bgcolor="#E0E0E0"><strong><center>3</center></strong></td>
<td bgcolor="#E0E0E0"><strong><center>2</center></strong></td>
<td bgcolor="#E0E0E0"><strong><center>1</center></strong></td>
<td bgcolor="#E0E0E0"><strong><center>ค่าเฉลี่ย</center></strong></td>
<td bgcolor="#E0E0E0"><strong><center>ระดับ</br>ความพึงพอใจ</center></strong></td>
</tr>
<?php
$sql = "select * from collected1 where version='$_POST["ver"]}' and course='{$_POST["course"]}' ";
$res = mysql_query($sql) or die(mysql_error());
while($data = mysql_fetch_row($res)){
$frequency[1] = 0;
$frequency[2] = 0;
$frequency[3] = 0;
$frequency[4] = 0;
$frequency[5] = 0;
for($i=2; $i<=16; $i++){ // q1 อยู่ในตำแหน่งที่สอง ... q15 อยู่ในตำแหน่งที่ 16
$frequency[$data[$i]]++;
}
echo "<tr>",
"<td height=\"50\" colspan=\"2\"><strong>{$_POST["course"]}</strong></td>",
"<td><strong><center>{$frequency[5]}</center></strong></td>",
"<td><strong><center>{$frequency[4]}</center></strong></td>",
"<td><strong><center>{$frequency[3]}</center></strong></td>",
"<td><strong><center>{$frequency[2]}</center></strong></td>",
"<td><strong><center>{$frequency[1]}</center></strong></td>",
"<td><strong><center>".(array_sum($frequency)/5)."</center></strong></td>",
"<td><strong><center>ระดับ</br>ความพึงพอใจ</center></strong></td>",
"</tr>";
}
|
ประวัติการแก้ไข 2013-03-23 11:06:31
|
|
|
|
Date :
2013-03-23 11:05:16 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ส่วนโค้ดชุดนี้ผมลองในเครื่องผมเอง
<div id="templatemo_slider">
<table width="92%" border="0" align="center" cellspacing="0">
<tr>
<td height="50" colspan="8"><table width="100%" border="2" cellpadding="0" cellspacing="0" bordercolor="black">
<tr>
<td height="50" colspan="2" bgcolor="#E0E0E0"><strong>เนื้อหาหลักสูตร</strong></td>
<td bgcolor="#E0E0E0"><strong><center>5</center></strong></td>
<td bgcolor="#E0E0E0"><strong><center>4</center></strong></td>
<td bgcolor="#E0E0E0"><strong><center>3</center></strong></td>
<td bgcolor="#E0E0E0"><strong><center>2</center></strong></td>
<td bgcolor="#E0E0E0"><strong><center>1</center></strong></td>
<td bgcolor="#E0E0E0"><strong><center>ค่าเฉลี่ย</center></strong></td>
<td bgcolor="#E0E0E0"><strong><center>ระดับ</br>ความพึงพอใจ</center></strong></td>
</tr>
<?php
$sql = "select t1.*,t2.course from collected1 t1,coursemain t2 where t1.id_c=t2.m_id and ver='1' and t1.m_id='การผลิตสื่อการสอน' ";
$res = mysql_query($sql) or die(mysql_error());
while($data = mysql_fetch_array($res)){
$frequency[1] = 0;
$frequency[2] = 0;
$frequency[3] = 0;
$frequency[4] = 0;
$frequency[5] = 0;
for($i=2; $i<=16; $i++){ // q1 อยู่ในตำแหน่งที่สอง ... q15 อยู่ในตำแหน่งที่ 16
$frequency[$data[$i]]++;
}
echo "<tr>",
"<td height=\"50\" colspan=\"2\"><strong>{$data["course"]}</strong></td>",
"<td><strong><center>{$frequency[5]}</center></strong></td>",
"<td><strong><center>{$frequency[4]}</center></strong></td>",
"<td><strong><center>{$frequency[3]}</center></strong></td>",
"<td><strong><center>{$frequency[2]}</center></strong></td>",
"<td><strong><center>{$frequency[1]}</center></strong></td>",
"<td><strong><center>".(array_sum($frequency)/5)."</center></strong></td>",
"<td><strong><center>ระดับ</br>ความพึงพอใจ</center></strong></td>",
"</tr>";
}
?>
|
|
|
|
|
Date :
2013-03-23 12:05:49 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|