Page 1 of 1

การเรียกใช้ฟิลด์ดาต้า จากตารางอื่น ทำ List menu ฐานข้อมูล

Posted: 17/11/2010 7:52 pm
by ascar9
lesson_list จะเก็บรายชื่อวิชาต่างๆในโรงเรียน
จะมีฟิลด์ ย่อย
LID = บันทึกเป็นตัวเลข 01,02,03....
LName = ชื่อวิชา
เพื่อเอามาใช้ในการทำ Drop และเผื่อมีการเปลี่ยนแปลงรายชื่อ

Code: Select all

<select name="txtLesson"> 
<option value="">เลือกบทเรียน</option> 
<? 
$strSQL = "SELECT * FROM lesson_list ORDER BY LID ASC";          
$listQuery = mysql_query($strSQL); 
while($listResult = mysql_fetch_array($listQuery))     
{          
?>       
<option value="<?=$listResult["LID"];?>"><?=$listResult["LName"];?></option>       
<?      
}   
?>         
</select>
เวลาส่งค่าไปเก็บที่ดาต้าเบส student_list จะเก็บในฟิลด์ Lesson ซึ่งจะระบุว่านักเรียนคนนี้เข้ามาเรียนวิชาใดบ้าง โคยระบบ Value ตาม LID คือ 01 02 03 แบบนี้ะนะครับ

ปัญหาคือแต่ก่อนนี้ผมจะใช้
function if เข้ามาเปลี่ยนค่าที่แสดง จาก 01 เป็น วิชาคณิตศาสตร์ ($lesname)

Code: Select all

         
<?
             if($row['Lesson'] == "01"){
             $lesname = "วิชาคณิตศาสตร์
";
         }elseif($row['Lesson'] == "02"){
             $lesname  = "วิชาสังคมศึกษา";
         }elseif(
........//             
}?>
ดังนั้นจะ เขียน SQL ให้ไปเรียก ชื่อจากตาราง lesson_list อย่างไรครับ
ลองหลายแบบแล้วไม่ได้สักที รบกวนท่านผู้ครับ

Re: การเรียกใช้ฟิลด์ดาต้า จากตารางอื่น

Posted: 17/11/2010 10:00 pm
by mindphp
Join table กันซิครับ แล้ว เอา LName ของเรามาแสดงเลย

หรือ ถ้า ชื่อวิชามีไม่มาก ก็ ดึงมันใส่ ตัวแปล array ไว้ทั้งหมด
เช่น

Code: Select all

$a_subject['01'] = 'ชื่อวิชา1'; // $listResult["LName"]
$a_subject['02'] = 'ชื่อวิชา2'; // $listResult["LName"] 
เวลาจะแสดงจากข้อมูลที่เก็บ

Code: Select all

$key = $row['Lesson'];
echo $a_subject[$key];