|
|
|
คำสั่ง SELECT จากรูปเป็นฟิลด์ข้อมูลในฐานข้อมูล ปัญหาคือ มันวนลูปไม่ถูกต้องครับ รบกวนพี่ๆ ชาว Thaicreate ทุกท่านช่วยดูโค้ดให้ด้วยนะครับ |
|
|
|
|
|
|
|
<?php
mysql_connect('localhost','root','12345');
mysql_select_db('dbname');
mysql_query('SET NAMES TIS620');
$sql5 =
"SELECT tb_occ.*,tb_devide.id_occ as dv_occ ".
"FROM tb_occ LEFT JOIN tb_devide ".
"ON tb_occ.id_occ=tb_devide.id_occ AND id_name=6";
$result5 = mysql_query($sql5) or die ("SQL 5 ERROR");
?>
<table border="1">
<?php
while ($row5 = mysql_fetch_array($result5)){
?>
<tr bgcolor="<?php echo $bg;?>">
<td><div align="center" class="style18 style65 style40">
<?php echo $row5['occ']?>
</div>
<div align="center" class="style18 style65 style40"></div></td>
<td><div align="center" class="style18 style65 style40">
<div align="left"><span class="style65"><span class="style65">
<?php echo $row5['id_occ']?>
</span></span></div>
</div></td>
<td><div align="center" class="style40">
<?
if (is_null($row5['dv_occ'])){
?>
<input name="selectadd[]" type="checkbox" id="selectadd<?php echo empty($i)?($i=1):++$i;?>" value="<?php echo $row5[0]?>" />
<? }else{
echo "ถูกเลือกแล้ว";
}
?>
<div align="center"></div>
</div></td>
<?php } ?>
</tr>
</table>
|
|
|
|
|
Date :
2009-09-01 19:02:01 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากๆๆ ครับ สำหรับคำตอบข้อนี้ ถ้าไม่ได้ท่านแย่เลยครับ
พอจะช่วยแนะนำหลักการคิดแบบนี้ได้ไหมครับ
|
|
|
|
|
Date :
2009-09-01 19:51:46 |
By :
ken |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SELECT
tb_occ.*,
tb_devide.id_occ as dv_occ
FROM
tb_occ
LEFT JOIN tb_devide
ON tb_occ.id_occ=tb_devide.id_occ AND id_name=6
เนื่องจากจะแสดงทุกรายการในตารางอาชีพ tb_occ
จึงเริ่มต้นให้ tb_occ อยู่ในฝั่ง outer ครับ (ในกรณีนี้ LEFT JOIN ฝั่ง outer คือฝั่งซ้าย)
จากนั้น join โดยใช้เงื่อนไข
tb_occ.id_occ=tb_devide.id_occ .... (1)
เพื่อทำให้ตารางผลลัพธ์มี column ของตาราง tb_devide
(กรณีเงื่อนไข (1) เป็นเท็จ column ของตาราง tb_devide (tb_devide.id_occ as dv_occ)) จะมีค่า NULL ครับ
แล้วก็มีการกรอง เพื่อเอาเฉพาะรายการที่มี tb_devide.id_name = 6 เท่านั้น
ซึ่ง column dv_occ (ซึ่งเป็น column ของตารางฝั่ง inner) ของรายการไหนมีค่า NULL ก็หมายถึง
(tb_devde.id_name = 6) ไม่มีความสัมพันธ์กับอาชีพ (tb_occ.id_occ) ของรายการนั้นครับ
|
|
|
|
|
Date :
2009-09-01 20:12:25 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|