 |
|
|
 |
 |
|

|
 |
 |
 |
 |
Date :
2013-07-06 20:18:43 |
By :
gosling |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้าอยากได้ง่ายๆ ผมใช้ json ครับ เก็บไว้ทั้งหมด หากว่าไม่ได้เอาข้อมูลมาวิเคราะห์อะไร ยืดหยุ่นดี
|
 |
 |
 |
 |
Date :
2013-07-06 20:36:49 |
By :
pjgunner.com |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้าไม่รู้จัก ก็ลองใช้ serialize() และ unserialize() ดูคับ
มันจะเอาข้อมูลใน array เปลี่ยนเป็นสตริง ที่เก็บในฐานข้อมูลได้ เวลาดึงก็ทำกลับเป็น array เหมือนเดิมได้
ดังนั้นจำนวนข้อมูลที่ไม่แน่นอน หรือ array หลายชั้นก็เก็บได้สบายครับ
หลักการเดียวกับ json เพียงแต่ json มันเป็นมาตรฐานภาษาอื่นก็ใช้งานได้ แต่ผมไม่แน่ใจว่า serializable ของ php จะใช้กับภาษาอื่นได้ไหม
ถ้าใช้แต่ php กับข้อมูลพวกนี้ จะใช้อันไหนก็ได้คับ
http://www.pjgunner.com
|
ประวัติการแก้ไข 2013-07-06 21:08:21
 |
 |
 |
 |
Date :
2013-07-06 21:07:58 |
By :
pjgunner.com |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ในส่วนฟิลด์ deserving เก็บค่าดังนี้
- ถ้าเลือก "เหมาะสม" จะเก็บค่า "เหมาะสม"
-ถ้าเลือก "ไม่เหมาะสม" จะเก็บค่า "ไม่เหมาะสม ควรเปลี่ยนสถานที่ เนื่องจากงานที่ได้รับมอบหมายไม่ตรงกับสาขาวิชาเรียน"
"ไม่เหมาะสม ควรเปลี่ยนสถานที่ เนื่องจากความเสี่ยงในการปฏิบัติงานสูง"
"ไม่เหมาะสม ควรเปลี่ยนสถานที่ เนื่องจาก.........."
"ไม่เหมาะสม ควรเปลี่ยนสถานที่ เนื่องจากปริมาณงานที่ได้รับมอบหมายน้อยกว่าจำนวนนักศึกษาที่เข้า ปฏิบัติงาน"
** อันสุดท้าย ต้องระบุจำนวนคนและรายชื่อคนด้วย ควรเก็บแบบไหนดีคะ 
|
 |
 |
 |
 |
Date :
2013-07-09 11:13:19 |
By :
gosling |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

|
 |
 |
 |
 |
Date :
2013-07-09 13:29:52 |
By :
gosling |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
กรณีเหมาะสม
$data['question3']['choice1'] = 'yes';
กรณีไม่เหมาะสม
$data['question3']['choice1'] = 'no';
$data['question3']['choice1']['no'] = '3';
$data['question3']['choice1']['no'][3] = array( 'name1' => 'abcd', 'name2' => 'eeffee', 'namexxx' => 'xxxxx');
เก็บเป็นอาร์เรย์ประมาณนี้แล้วก็สั่ง
$toStringData = json_encode($data);
เก็บลงในฐานข้อมูลฟิลด์ที่มี TYPE เป็น TEXT จะเก็บได้เยอะๆหน่อย
ตอนเอาออกมาใช้ก็
$data = json_decode($fromDataBase['myfield']);
แล้วก็ไปเช็กว่า yes หรือ no
เขียนเองอ่านแล้วปวดหัวเอง ไปดีกว่า :)
|
 |
 |
 |
 |
Date :
2013-07-09 13:59:49 |
By :
{Cyberman} |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อัลกอริธึมอันใหม่ค่ะ
Question ความเหมาะสม
Answer
1. A (radio)
2. B (radio)
3. C (radio)
4. D1 (radio) + D2 (textfield) +D3 (multiple listbox)
5. E1 (radio) + E2(textfield)
ลองทำดูแล้ว มันเก็บคำว่า "Array" แทนค่ะ
เขียนโค้ดผิด แต่ไม่รู้ว่าต้องแก้ยังไงค่ะ
ขอคำแนะนำด้วยนะคะ 
|
ประวัติการแก้ไข 2013-07-11 13:02:21 2013-07-11 13:05:29
 |
 |
 |
 |
Date :
2013-07-11 13:01:57 |
By :
gosling |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมว่าสร้างตารางเก็บคำถามเลยดีกว่าครับ
โดยในตารางมีฟิลด์สำหรับอ้างอิง คำถามหลัก
ถ้าฟิลด์นั้นเป็น ค่าว่างหรือ 0 คือเป็นหัวข้อหลัก ของฟอร์มนั้นๆ
เวลาแสดงก็ลิสต์คำถามหลัก
แล้วก็นำคำถามหลักไปลิสต์คำถามย่อย
ทำแบบนี้ไปเรื่อยๆ
โดยที่แต่ละเรคอร์ดของคำถามจะต้องมีฟิลด์ระบุว่าเป็นคำถามแบบ text, textarea, radio, checkbox, etc....
|
 |
 |
 |
 |
Date :
2013-07-11 13:07:07 |
By :
{Cyberman} |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เก็บเป็น array ไปเลยครับ
Code ตัวอย่าง ใช้ serialize + unserialize(PHP)
$a = array('D1'=>1,'D2'=>10,'D3'=>2);
$b = serialize($a);
echo $b; /// จะได้ a:3:{s:2:"D1";i:1;s:2:"D2";i:10;s:2:"D3";i:2;} จับ insert ได้เลย ** กำหนดขนาดฟิวด์เยอะๆหน่อยน่ะครับ
echo "<br />";
//เวลาเอาไว้งาน ให้ unserialize ก่อนน่ะครับ จะได้ array ออกมาเหมือนเดิม
$c = unserialize($b);
print_r($c);
|
 |
 |
 |
 |
Date :
2013-07-12 15:04:20 |
By :
mangkunzo |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คือ ถ้าแค่นี้ ไม่ต้องใช้ array ก็ได้ครับ
Code (PHP)
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
</head>
<body>
<script>
function ck_radio(val)
{
if(val=="1"){
document.getElementById('res_deserving').style.display='block';
}else{
document.getElementById('res_deserving').style.display='none';
}
}
</script>
<center>ตอนที่ 3 ความเหมาะสมในการฝึกประสบการณ์วิชาชีพ</center></br>
<form action="test_save.php" method="post" name="form1" id="form1">
<input type="radio" name="deserving" value="เหมาะสม" onclick="ck_radio(0)">เหมาะสม</br>
<input type="radio" name="deserving" value="ไม่ตรงกับสาขาวิชาเรียน" onclick="ck_radio(0)">ไม่ตรงกับสาขาวิชาเรียน</br>
<input type="radio" name="deserving" value="ความเสี่ยงสูง" onclick="ck_radio(0)">ความเสี่ยงสูง</br>
<input type="radio" name="deserving" value="ปริมาณงานน้อย เห็นควรให้เปลี่ยนที่จำนวน" onclick="ck_radio(0)">ปริมาณงานน้อย</br>
<input type="radio" name="deserving" value="เนื่องจากสาเหตุอื่นๆโปรดระบุ" onclick="ck_radio(1)">เนื่องจากสาเหตุอื่นๆโปรดระบุ</br>
<textarea id="res_deserving" name="res_deserving" cols="50" rows="5" placeholder="พิมพ์ข้อความที่นี่..." style="display:none;"></textarea>
<br>
<input type="submit" align="right" value="ส่งข้อมูล" />
</form>
</body>
</html>
<?php
if(!empty($_POST['deserving'])){ // กรณีไม่มีสาเหตุอื่นๆ ให้ส่ง $_POST['deserving'] ไป insert ได้เลย
if(!empty($_POST['res_deserving'])){ // กรณีมีสาเหตุอื่นๆ ให้ส่ง $_POST['deserving'] และ $_POST['res_deserving'] ไป insert ได้เลย
$values = $_POST['deserving']."+".$_POST['res_deserving'];
// ต่อ string ไปเลยครับ เช่น เลือก "เนื่องจากสาเหตุอื่นๆโปรดระบุ" และ อื่นๆมาเป็น "ทดสอบๆๆๆๆ"
// จะได้ค่า "เนื่องจากสาเหตุอื่นๆโปรดระบุ+ทดสอบๆๆๆๆ"
// เวลาเอาไปใช้งาน ก็ explode("+",$values) ก็จะได้ ค่าทั้งสอง แยกกัน
}else{
$values = $_POST['deserving']ว
}
}
/// เอา $values ไป insert ได้เลย
///****อ่านคอมเม้นท์ดีๆ น่าจะเข้าใจน่ะ
?>
|
 |
 |
 |
 |
Date :
2013-07-12 16:22:33 |
By :
mangkunzo |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|