|
|
|
สอบถาม จะเขียนคำสั่ง MySQL เพื่อแสดง select option ลิสออกมา เป็นลำดับชั้น จะเขียนอย่างไร ครับ |
|
|
|
|
|
|
|
คิวรี่ tb_category ออกมาก่อน แล้ววน
ตอนวน ก็ คิวรี่ ตัว tb_category_group ที่มี parent = cate_id
Code (PHP)
$sql= "select * from tb_category ":
while($row=xxx){
$sql 2 = "select * from tb_category_group where parent = ".$row['cate_id'];
}
วนแบบง่ายๆ
ก็มีหลายวิธีคับ แบบ คิวรี่ แต่ละ db ออกมาครั้งเดียวแล้ว ตอนวน table_category ก็วน tb_category_group แล้ว if เช็คเอาว่า parent = cate_id ค่อย echo
มีคนเคยถามแบบนี้ในกระทู้เก่าละ ผมหาให้ไม่เจอ
|
ประวัติการแก้ไข 2015-11-16 12:51:02
|
|
|
|
Date :
2015-11-16 12:50:20 |
By :
progamer2000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<select>
<optgroup label="test1" >
<optgroup label=" test11" >
<option value="1a">A</option>
<option value="1b">B</option>
</optgroup>
<optgroup label=" test12">
<option value="1c">C</option>
<option value="1d">D</option>
</optgroup>
</optgroup>
<optgroup label="test2">
<optgroup label=" test21">
<option value="2a">A</option>
<option value="2b">B</option>
</optgroup>
<optgroup label=" test22">
<option value="2c">C</option>
<option value="2d">D</option>
</optgroup>
</optgroup>
</select>
</body>
</html>
|
|
|
|
|
Date :
2015-11-16 13:01:10 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมเขียนได้ในลักษณะนี้
Code (PHP)
function a(){
echo "<select name='cate_id'>";
echo "<option value=0>None</option>";
$sql=select("tb_category_group, tb_category","where tb_category_group.cate_id=tb_category.cate_id");
$num=num_rows($sql);
for($n=1;$n<=$num;$n++){
$rs=fetch($sql);
if($rs['parent']==0){
echo "<option value=$rs[cate_id]>$rs[cate_name]</option>";
b($rs['cate_id']);
}
}
echo "</select>";
}
function b($temp){
$sql=select("tb_category_group, tb_category","where tb_category_group.cate_id=tb_category.cate_id and tb_category_group.parent='$temp' ");
$num=num_rows($sql);
for($n=1;$n<=$num;$n++){
$rs=fetch($sql);
echo "<option value=$rs[cate_id]> $rs[cate_name]</option>";
c($rs['cate_id']);
}
}
function c($temp){
$sql=select("tb_category_group, tb_category","where tb_category_group.cate_id=tb_category.cate_id and tb_category_group.parent='$temp' ");
$num=num_rows($sql);
for($n=1;$n<=$num;$n++){
$rs=fetch($sql);
echo "<option value=$rs[cate_id]> $rs[cate_name]</option>";
d($rs['cate_id']);
}
}
function d($temp,$disabled){
$sql=select("tb_category_group, tb_category","where tb_category_group.cate_id=tb_category.cate_id and tb_category_group.parent='$temp' ");
$num=num_rows($sql);
for($n=1;$n<=$num;$n++){
$rs=fetch($sql);
echo "<option value=$rs[cate_id]> $rs[cate_name] </option>";
}
}
ต้องเขียนฟังชั่น ซ้อน ฟังชั่น ฟังชั่นหลักที่นำมาใช้ คือ ฟังชัน A ตามนี้มันจะเรียงลำดับได้ที่ 4 ลำดับชั้น
มีใครที่สามารถเขียนให้สั้นกว่านี้ ได้อีกไหมครับ
|
|
|
|
|
Date :
2015-11-17 14:57:04 |
By :
apinyacumlua |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|