|
|
|
เก็บข้อมูลในฐานข้อมูลไว้ 2 ตาราง ต้องการนำออกมาโชว์แบบฟอร์มแบบประเมิน ต้องทำยังไงคะ |
|
|
|
|
|
|
|
Select ตารางแรกก่อนแล้ว Loop เอา ID ไป Select ตารางที่ 2 ต่อ
|
|
|
|
|
Date :
2013-08-02 14:15:48 |
By :
Krungsri |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองเปลี่ยนเป็น utf8, utf-8 ดูครับหรือไม่ก็ tis-620 ลองดู
Code (PHP)
mysql_query("SET character_set_results=utf8");
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_connection=utf8");
|
|
|
|
|
Date :
2013-08-04 10:22:05 |
By :
Krungsri |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Database ตั้ง collection เป็นอะไรคับ
|
|
|
|
|
Date :
2013-08-04 10:52:38 |
By :
Krungsri |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Save file เป็น utf-8 ยังครับ
|
|
|
|
|
Date :
2013-08-04 11:09:16 |
By :
Krungsri |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าต้องการแทรกข้อมูลทั้งหมดให้อยู่ในตารางเหมือนในรูปข้างบน ต้องเขียนโค้ดยังไงคะ
พอมีตัวอย่างมั้ยคะ
|
|
|
|
|
Date :
2013-08-04 12:24:59 |
By :
gosling |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<table width="500" border="0" cellpadding="0" cellspacing="0" id="Mytable">
<thead>
<tr>
<th>ประเมิน</th>
</tr>
</thead>
<?
$result = mysql_query("SELECT * FROM `assess1`");
?>
<tbody>
<?
while($rs = mysql_fetch_array($result)){ // loop ตารางหลัก
$ass_id = $rs['ass1_id'];
?>
<tr>
<td><?=$rs['ass1_name']?></td>
</tr>
<?
$result2 = mysql_query("SELECT * FROM `assess2` WHERE ass1_id = '$ass_id'");
while($rs2 = mysql_fetch_array($result2)){ // loop ตารางรอง
?>
<tr>
<td><?=$rs2['ass2_name']?></td>
</tr>
<?
}
}
?>
</tbody>
</table>
|
|
|
|
|
Date :
2013-08-04 12:46:55 |
By :
Krungsri |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอาไปเป็นแนวทางนะครับ
index.php
<html>
<head>
<title>No name.</title>
</head>
<body>
<form action="getdata.php" method="post">
<table border="1" cellpadding="0" cellspacing="0" align="center" width="300">
<thead>
<tr>
<th>Score1</th>
<th>Score2</th>
<th>Score3</th>
<th>Score4</th>
<th>Score5</th>
</tr>
</thead>
<tbody>
<?
for($i=1;$i<=5;$i++){
?>
<tr>
<td><input type="radio" name="radio_<?=$i?>" value="1"></td>
<td><input type="radio" name="radio_<?=$i?>" value="2"></td>
<td><input type="radio" name="radio_<?=$i?>" value="3"></td>
<td><input type="radio" name="radio_<?=$i?>" value="4"></td>
<td><input type="radio" name="radio_<?=$i?>" value="5"></td>
</tr>
<?
}
?>
</tbody>
<tfoot>
<tr>
<td colspan="5">
<input type="hidden" name="Max" value="<?=$i-1?>">
<input type="submit" value="Submit">
</td>
</tr>
</tfoot>
</table>
</form>
</body>
</html>
getdata.php
<?php
$Max = $_POST['Max'];
$Choice = array();
for ($i=1; $i <= $Max; $i++) {
array_push($Choice,$_POST['radio_'.$i]);
}
echo "<pre>";
print_r($Choice);
echo "</pre>";
echo array_sum($Choice);
?>
|
|
|
|
|
Date :
2013-08-05 00:45:54 |
By :
Krungsri |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
$num = mysql_num_rows($sql_select_query)
$i=1;$i<=$num;$i++
|
ประวัติการแก้ไข 2013-08-05 10:14:13
|
|
|
|
Date :
2013-08-05 10:13:37 |
By :
teez1232002 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2013-08-05 12:29:53 |
By :
gosling |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอนนี้ติดปัญหาอะไรครับ
|
|
|
|
|
Date :
2013-08-05 12:34:50 |
By :
Ex-[S]i[L]e[N]t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<html>
<head>
<title>Retrieve data from database </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?php
$objConnect = mysql_connect("localhost","root","1234") or die("Error Connect to Database");
$objDB = mysql_select_db("db_intern");
mysql_query("SET NAMES UTF8");
$sql1 = "SELECT * FROM `assess1`";
$rs1 = mysql_query($sql1) or die(mysql_error());
while ($f = mysql_fetch_array($rs1)) {
$sql2 = "SELECT * FROM `assess2` WHERE ass1_id = '$f[ass1_id]'";
$rs2 = mysql_query($sql2) or die(mysql_error());
while ($c = mysql_fetch_array($rs2)) {
}
}
?>
<form method="POST" action="#">
<table width="500" border="0" cellpadding="0" cellspacing="0" id="Mytable">
<thead>
<tr>
<th>ประเมิน</th>
<td width="35"><b>5</b></td>
<td width="35"><b>4</b></td>
<td width="35"><b>3</b></td>
<td width="35"><b>2</b></td>
<td width="35"><b>1</b></td>
</tr>
</thead>
<?
$result = mysql_query("SELECT * FROM `assess1`");
?>
<tbody>
<?
while($rs = mysql_fetch_array($result)){ // loop ตารางหลัก
$ass_id = $rs['ass1_id'];
?>
<tr>
<td><?=$rs['ass1_name']?></td>
</tr>
<?
$result2 = mysql_query("SELECT * FROM `assess2` WHERE ass1_id = '$ass_id'");
$max = mysql_num_rows($result2);
for($i=1;$i<=$max;$i++){// loop ตารางรอง
?>
<tr>
<td><?=$rs2[$i-1]['ass2_name']?></td>
<td align="center"> <input type="radio" name="" value="5"> </td>
<td align="center"> <input type="radio" name="" value="4"> </td>
<td align="center"> <input type="radio" name="" value="3"> </td>
<td align="center"> <input type="radio" name="" value="2"> </td>
<td align="center"> <input type="radio" name="" value="1"> </td>
</tr>
<?
}
}
?>
</tbody>
</table>
</form>
</body>
</html>
|
|
|
|
|
Date :
2013-08-05 12:46:11 |
By :
Krungsri |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมขอแนะนำในส่วน radio ก่อนแล้วกันนะครับ
จาก code ที่ผมสังเกตุดูเห็นได้ว่า ใน 1 หัวข้อสามารถเลือได้หลาย คำตอบ ใช่มั้ยครับ ก็เพราะว่า ค่า name $i แตกต่างกันออกไป
ในการที่จะให้สามารถเลือกได้ตัวใดตัวหนึ่งนั้นจำเป็นต้อง เป็น name เดียวกันทั้งหมด
Code (PHP)
<html>
<head>
<title>Retrieve data from database </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?php
$objConnect = mysql_connect("localhost","root","1234") or die("Error Connect to Database");
$objDB = mysql_select_db("db_intern");
mysql_query("SET NAMES UTF8");
$sql1 = "SELECT * FROM assess1";
$rs1 = mysql_query($sql1) or die(mysql_error());
while ($f = mysql_fetch_array($rs1)) {
$sql2 = "SELECT * FROM assess2 WHERE ass1_id = '$f[ass1_id]'";
$rs2 = mysql_query($sql2) or die(mysql_error());
while ($c = mysql_fetch_array($rs2)) {
}
}
?>
<form method="POST" action="getassess.php">
<table width="500" border="0" cellpadding="0" cellspacing="0" id="Mytable">
<thead>
<tr>
<td align="center">ประเมิน</td>
<td width="35" align="center"><b>5</b></td>
<td width="35" align="center"><b>4</b></td>
<td width="35" align="center"><b>3</b></td>
<td width="35" align="center"><b>2</b></td>
<td width="35" align="center"><b>1</b></td>
</tr>
</thead>
<?
$result = mysql_query("SELECT * FROM assess1");
?>
<tbody>
<?
$i=0; // ตั้งค่าเริ่มต้น คือ 0
while($rs = mysql_fetch_array($result)){ // loop ตารางหลัก
$ass_id = $rs['ass1_id'];
$i++; // วน Loop หัวข้อหลัก เพิ่มขึ้นที่ละ 1
?>
<tr>
<td><?=$rs['ass1_name']?></td>
</tr>
<?
$result2 = mysql_query("SELECT * FROM assess2 WHERE ass1_id = '$ass_id'");
while($rs2 = mysql_fetch_array($result2)){ // loop ตารางรอง
?>
<tr>
<td><?=$rs2['ass2_name']?></td>
<td align="center"> <input type="radio" name="radio_<?=$i?>" value="5"> </td>//รอบแรกจะได้ radio_1;
<td align="center"> <input type="radio" name="radio_<?=$i?>" value="4"> </td>//รอบแรกจะได้ radio_1;
<td align="center"> <input type="radio" name="radio_<?=$i?>" value="3"> </td>//รอบแรกจะได้ radio_1;
<td align="center"> <input type="radio" name="radio_<?=$i?>" value="2"> </td>//รอบแรกจะได้ radio_1;
<td align="center"> <input type="radio" name="radio_<?=$i?>" value="1"> </td>//รอบแรกจะได้ radio_1; วนต่อไปเลื่อยๆ
</tr>
<?
}
}
?>
</tbody>
<tfoot>
<tr>
<td colspan="5">
<input type="hidden" name="Max" value="<?=$i-1?>">
<input type="submit" value="Submit">
</td>
</tr>
</tfoot>
</table>
</form>
</body>
</html>
|
|
|
|
|
Date :
2013-08-05 12:51:23 |
By :
Ex-[S]i[L]e[N]t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
$result2 = mysql_query("SELECT * FROM `assess2` WHERE ass1_id = '$ass_id'");
$max = mysql_num_rows($result2);
for($i=1;$i<=$max;$i++){// loop ตารางรอง
?>
<tr>
<td><?=$result2[$i-1]['ass2_name']?></td>
<td align="center"> <input type="radio" name="radio_<?=$i?>" value="5"> </td>
<td align="center"> <input type="radio" name="radio_<?=$i?>" value="4"> </td>
<td align="center"> <input type="radio" name="radio_<?=$i?>" value="3"> </td>
<td align="center"> <input type="radio" name="radio_<?=$i?>" value="2"> </td>
<td align="center"> <input type="radio" name="radio_<?=$i?>" value="1"> </td>
</tr>
<?
}
|
|
|
|
|
Date :
2013-08-05 13:00:46 |
By :
Krungsri |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองกำหนดเป็นอาร์เรย์
<input type="radio" name="radio_<?=$i?>[]" value="3">
แล้วไป foreach แทนการใช้ for ครับ
|
|
|
|
|
Date :
2013-08-05 13:35:57 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คงจะประมาณนี้ละมั้งครับ
Code (PHP)
<html>
<head>
<title>Retrieve data from database </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?php
$objConnect = mysql_connect("localhost","root","123456") or die("Error Connect to Database");
$objDB = mysql_select_db("db_intern");
mysql_query("SET NAMES UTF8");
?>
<form method="POST" action="#">
<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="44%" align="center">ประเมิณ</td>
<td width="4%" align="center">5</td>
<td width="4%" align="center">4</td>
<td width="4%" align="center">3</td>
<td width="4%" align="center">2</td>
<td width="4%" align="center">1</td>
</tr>
<?
$ix=1;
$qr1=mysql_query("select * from assess1 order by ass1_id asc");
while($res_1=mysql_fetch_array($qr1)){
?>
<tr>
<td colspan="6"><?=$res_1[ass1_name]?></td>
</tr>
<?
$i=1;
$qr2=mysql_query("select * from assess2 where ass1_id=$res_1[ass1_id] order by ass1_2_id asc");
while($res_2=mysql_fetch_array($qr2)){
?>
<tr>
<td> <?=$res_2[ass1_2_name]?></td>
<td align="center"><input type="radio" name="ra_<?=$ix.$i?>" value="5"></td>
<td align="center"><input type="radio" name="ra_<?=$ix.$i?>" value="4"></td>
<td align="center"><input type="radio" name="ra_<?=$ix.$i?>" value="3"></td>
<td align="center"><input type="radio" name="ra_<?=$ix.$i?>" value="2"></td>
<td align="center"><input type="radio" name="ra_<?=$ix.$i?>" value="1"></td>
</tr>
<? $i++; } $ix++; } ?>
</table>
</form>
</body>
</html>
|
ประวัติการแก้ไข 2013-08-05 17:36:55
|
|
|
|
Date :
2013-08-05 17:35:03 |
By :
jackkichan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตัวอย่างการใช้ foreach ครับ ลองเอาไปรันดูผลลัพธ์ที่ได้นะครับ ว่าจะถูกใจหรือไม่
Code (PHP) Example
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>การนำออกมาโชว์แบบฟอร์มแบบประเมิน - www.sunzan-design.com</title>
</head>
<body>
<?php
//-- ตารางหัวข้อหลัก
//-- ส่วนที่ดึงมาจากฐานข้อมูล ในลูป while ซึ่งมีจำนวนนหัวข้อหลักทั้งหมด 5 หัวข้อตามภาพ
//$assess1[$rs['ass1_id']] = $rs['ass1_name'];
$assess1 = array();
$assess1[1] = 'ความรู้ความเข้าใจในการปฏิบัติงาน';
$assess1[2] = 'เจตคติและจรรยาบรรณในการทำงาน';
$assess1[3] = 'ทักษะการปฏิบัติงาน';
$assess1[4] = 'ความสามารถในการแก้ปัญหาจากการทำงาน';
$assess1[5] = 'ทักษะการทำงานร่วมกับผู้อื่น';
//-- สิ้นสุดการจัดรูปแบบข้อมูลในลูป while
//-- ตารางหัวข้อย่อย
//-- ส่วนที่ดึงมาจากฐานข้อมูล ในลูป while
//$assess2[$rs2['ass1_id']][$rs2['ass1-2_id']] = $rs2['ass1-2_name'];
$assess2 = array();
$assess2[1][1] = 'ความรู้ความเข้าใจกระบวนการทำงาน';
$assess2[1][2] = 'ความรู้ความเข้าใจขอบข่ายการปฏิบัติงาน';
$assess2[1][3] = 'การวางแผนก่อนการปฏิบัติงาน';
$assess2[1][4] = 'ความคิดริเริ่มในการปฏิบัติงาน';
$assess2[2][5] = 'ตรงต่อเวลา';
$assess2[2][6] = 'ซื่อสัตย์';
$assess2[2][7] = 'ใฝ่รู้ ขยัน อดทน';
$assess2[2][8] = 'รับผิดชอบและติดตามงาน';
$assess2[3][9] = 'เตรียมความพร้อมก่อนปฏิบัติงาน';
$assess2[3][10] = 'ทำงานถูกต้อง';
$assess2[3][11] = 'ความชำนาญ';
$assess2[3][12] = 'ทำงานปลอดภัย';
$assess2[4][13] = 'การเสนอแนวทาง';
$assess2[4][14] = 'กล้าตัดสินใจ';
$assess2[4][15] = 'ตัดสินใจถูกต้อง';
$assess2[4][16] = 'ความสามารถแก้ปัญหา';
//-- สิ้นสุดการจัดรูปแบบข้อมูลในลูป while
$i=0;
echo '<form method="POST" action="getassess.php">';
echo '<table border="1" width="1095">';
foreach($assess1 as $assId=>$assName){
$i++;
echo '<tr>';
echo '<td class="room">'.$i.'. '.$assName.'</td><td colspan="5" style="background-color:#FF93FE;"> </td>';
echo '</tr>';
if(isset($assess2[$assId])){
$j=0;
foreach($assess2[$assId] as $ass2Id=>$ass2Name){
$j++;
echo '<tr>';
echo '<td class="room">';
echo "-->$i.$j $ass2Name";
echo '<input type="hidden" name="ass_id['.$ass2Id.']" value="'.$assId.'">
</td>';
echo '<td><input type="radio" name="radio_'.$ass2Id.'[]" value="5"></td>'
. '<td><input type="radio" name="radio_'.$ass2Id.'[]" value="4"></td>'
. '<td><input type="radio" name="radio_'.$ass2Id.'[]" value="3"></td>'
. '<td><input type="radio" name="radio_'.$ass2Id.'[]" value="2"></td>'
. '<td><input type="radio" name="radio_'.$ass2Id.'[]" value="1"></td>';
echo '</tr>';
}
}
}
echo ' </table>';
echo '<input type="submit" value="Submit">';
echo '</form>';
//ตัวอย่างหน้ารับข้อมูล
//ถ้าต้องการบันทึกข้อมูลไปเลย ก้ไม่ต้องจัดรูปแบบตามนี้ก็ได้ วนลูป ass_id แล้วบันทึกค่าต่างๆไปเลย
if(isset($_POST['radio_'.$ass2Id])){
$i=0;
echo '<br><hr><br>';
echo '<table border="1" width="1095">';
foreach($assess1 as $assId=>$assName){
$i++;
echo '<tr style="background-color:#eeeeee;">';
echo '<td class="room">'.$i.'. '.$assName.'</td><td> </td>';
echo '</tr>';
if(isset($assess2[$assId])){
$j=0;
foreach($assess2[$assId] as $ass2Id=>$ass2Name){
$j++;
$assetAnswer = isset($_POST['radio_'.$ass2Id][0]) ? $_POST['radio_'.$ass2Id][0] : '';
echo '<tr>';
echo '<td class="room">';
echo "-->$i.$j $ass2Name";
echo '<input type="hidden" name="ass_id['.$ass2Id.']" value="'.$assId.'">
</td>';
echo '<td>'.$assetAnswer.'</td>';
echo '</tr>';
}
}
}
echo ' </table>';
}
?>
</body>
</html>
|
|
|
|
|
Date :
2013-08-05 19:20:44 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ปล. ข้อมูลในตารางหัวข้อย่อย ไม่ครบนะครับ (พิมพ์จนนิ้วหงิก )
|
|
|
|
|
Date :
2013-08-05 19:21:43 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอนนี้รับค่าได้แล้ว แต่ทำไมรับแค่ 19 ทั้งๆที่มีทั้งหมด 20
ช่วยดูให้หน่อยนะคะ
Code (PHP)
<html>
<head>
<title>Retrieve data from database </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?php
$objConnect = mysql_connect("localhost","root","1234") or die("Error Connect to Database");
$objDB = mysql_select_db("db_intern");
mysql_query("SET NAMES UTF8");
$sql1 = "SELECT * FROM `assess1`";
$rs1 = mysql_query($sql1) or die(mysql_error());
while ($f = mysql_fetch_array($rs1)) {
$sql2 = "SELECT * FROM `assess2` WHERE ass1_id = '$f[ass1_id]'";
$rs2 = mysql_query($sql2) or die(mysql_error());
while ($c = mysql_fetch_array($rs2)) {
}
}
?>
<form method="POST" action="getassess.php">
<table width="500" border="0" cellpadding="0" cellspacing="0" id="Mytable">
<thead>
<tr>
<th>ประเมิน</th>
<td width="35"><b>5</b></td>
<td width="35"><b>4</b></td>
<td width="35"><b>3</b></td>
<td width="35"><b>2</b></td>
<td width="35"><b>1</b></td>
</tr>
</thead>
<?
$result = mysql_query("SELECT * FROM `assess1`");
?>
<tbody>
<?
while($rs = mysql_fetch_array($result)){ // loop ตารางหลัก
$ass_id = $rs['ass1_id'];
?>
<tr>
<td><?=$rs['ass1_name']?></td>
</tr>
<?
$result2 = mysql_query("SELECT * FROM `assess2` WHERE ass1_id = '$ass_id'");
while($rs2 = mysql_fetch_array($result2)){ // loop ตารางรอง
?>
<tr>
<td> <?=$rs2['ass2_name']?></td>
<td align="center"> <input type="radio" name="radio_<?php echo $i?>" value="5"> </td>
<td align="center"> <input type="radio" name="radio_<?php echo $i?>" value="4"> </td>
<td align="center"> <input type="radio" name="radio_<?php echo $i?>" value="3"> </td>
<td align="center"> <input type="radio" name="radio_<?php echo $i?>" value="2"> </td>
<td align="center"> <input type="radio" name="radio_<?php echo $i?>" value="1"> </td>
</tr>
<? $i++;
}
}
?>
</tbody>
<tfoot>
<tr>
<td colspan="5">
<input type="hidden" name="Max" value="<?=$i-1?>">
<input type="submit" value="Submit">
</td>
</tr>
</tfoot>
</table>
</form>
</body>
</html>
|
|
|
|
|
Date :
2013-08-11 16:24:41 |
By :
gosling |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เพราะไม่ได้กำหนดค่าเริ่มต้นให้กับ $i ครับ
ดังนั้นเมื่อนำ $i ไปใช้ครั้งแรก ก่อนที่จะเพิ่มค่า $i++
ค่าของ $i จะเป็น null (และเกิด error แต่คุณคงไม่เห็นซึ่งคิดคาดว่าคงปิด error_reporting ไว้โดย AppServ)
เมื่อนำไปใช้เป็นค่าของชื่อ input จะได้สตริงว่าง '' ครับ
ดังนั้น input ตัวแรก จะมี name="radio_" ครับ
ลอง View Source ดูได้
ดังนั้นเราต้องกำหนด $i = 0 (หรืออื่นๆ ตามที่คุณอ่านค่าของมันในอีกไฟล์) ก่อนเริ่ม loop while บรรทัดที่ 49
|
|
|
|
|
Date :
2013-08-11 18:18:13 |
By :
cookiephp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทุกข้อดีกว่าครับ
|
|
|
|
|
Date :
2013-08-12 21:27:43 |
By :
compiak |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พี่ครับผมขอไฟล์เอามาศึกษาหน่อยครับ na-eim แบบประเมินอ่ะครับขอบคุนนะครับ
|
|
|
|
|
Date :
2020-01-09 15:23:25 |
By :
mustakeam |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|