madensri

Wed 14 Mar 2007 17:48:11
Wed 14 Mar 2007 17:48:11
คือผมค้นหาจากกระทู้เก่าๆในนี้ดูแล้วลองเอามาทดสอบดูแล้วผลลัพธ์ก็ OK ครับ (ขอบคุณ คุณRujZ ครับ)
=========== test.php ============
<?php
$Cust_No = "001";
mysql_connect("localhost", "root", "1234");
mysql_select_db("genealogy");
mysql_query("SET NAMES 'tis620';");
function render($parent, $level)
{
$result = mysql_query("SELECT * FROM `customer` WHERE `ImmediateSuperior` = $parent ORDER BY `Cust_No` ASC");
while($row = mysql_fetch_array($result))
{
for($i=0; $i<$level; $i++)
{
echo "==>";
}
echo "{$row['Cust_Name']}<br/>";
render($row['Cust_No'], $level + 1); // ค้นหาสายของตัวเอง โดนบวก level ไป 1
}
}
render($Cust_No, 0); // เริ่มต้นที่ parent = 0 คือระดับสูงสุด และให้ level = 0
mysql_close();
?>
=============================
ไฟล์ที่ 2
=========== genealogy.sql ============
-- ----------------------------
-- Table structure for customer
-- ----------------------------
CREATE TABLE `customer` (
`Cust_No` varchar(10) NOT NULL,
`Cust_Name` varchar(100) default NULL,
`ImmediateSuperior` varchar(10) default NULL,
`ImmediateSuperior_Team` varchar(10) default NULL,
`ImmediateSuperior_Team_Line` varchar(10) default NULL,
`Email` varchar(40) default NULL,
`MobilePhone` varchar(15) default NULL,
`PVRate` int(11) default NULL,
`DownLine_Left` varchar(10) default NULL,
`DownLine_Right` varchar(10) default NULL,
PRIMARY KEY (`Cust_No`),
KEY `i_ImmediateSuperior` (`ImmediateSuperior`),
KEY `i_ImmediateSuperior_Team` (`ImmediateSuperior_Team`),
KEY `i_ImmediateSuperior_Team_Line` (`ImmediateSuperior_Team_Line`),
KEY `i_DownLine_Left` (`DownLine_Left`),
KEY `i_DownLine_Right` (`DownLine_Right`),
KEY `i_Cust_Name` (`Cust_Name`),
KEY `i_PVRate` (`PVRate`)
) ENGINE=MyISAM DEFAULT CHARSET=tis620 COMMENT='ข้อมูลลูกค้า(Master)';
-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO `customer` VALUES ('001', 'เด่น', null, null, null, 'madensri@hotmail.com', '081-2797521', '1000', '002', '003');
INSERT INTO `customer` VALUES ('002', 'ใจ', '001', '001', 'L', 'jai@hotmail.com', '084-6447064', '900', '004', '005');
INSERT INTO `customer` VALUES ('003', 'ครีม', '001', '001', 'R', 'cream@hotmail.com', '084-12345678', '800', '006', '007');
INSERT INTO `customer` VALUES ('004', 'เคน', '001', '002', 'L', 'ken@hotmail.com', '081-78945612', '700', '008', '009');
INSERT INTO `customer` VALUES ('005', 'ปู', '001', '002', 'R', 'poo@hotmail.com', '082-23546895', '600', null, null);
INSERT INTO `customer` VALUES ('006', 'เปา', '002', '003', 'L', 'pao@hotmail.com', '083-12356485', '500', '010', null);
INSERT INTO `customer` VALUES ('007', 'ไก่', '003', '003', 'R', 'kai@hotmail.com', '084-12354865', '400', null, null);
INSERT INTO `customer` VALUES ('008', 'มด', '003', '004', 'L', 'mod@hotmail.com', '085-15255225', '300', null, null);
INSERT INTO `customer` VALUES ('009', 'ดิว', '005', '004', 'R', 'dew@hotmail.com', '086-25468542', '200', null, null);
INSERT INTO `customer` VALUES ('010', 'เงี่ยม', '007', '006', 'L', 'keam@hotmail.com', '087-25535411', '100', null, null);
===============================
ผลลัพธ์ก็ออกมาตามปกติครับคือ
============================
ใจ
==>เปา
ครีม
==>ไก่
==>==>เงี่ยม
==>มด
เคน
ปู
==>ดิว
=============================
คำถามน่ะครับ หากผมอยากให้มันแสดงผลออกมาแบบนี้
=============================
Level:1
ใจ
ครีม
เคน
ปู
Level:2
เปา
ไก่
มด
ดิว
Level:3
เงี่ยม
=============================
คือให้มันแบ่งออกเป็น Level นั้นเองครับ ผมพยายามลองมาครึ่งวัน มันเพี้ยนอ่ะคับพอจะมีแนวทางไหมครับผมที่จะให้แสดงผลตามต้องการครับ
ขอบคุณครับ
=========== test.php ============
<?php
$Cust_No = "001";
mysql_connect("localhost", "root", "1234");
mysql_select_db("genealogy");
mysql_query("SET NAMES 'tis620';");
function render($parent, $level)
{
$result = mysql_query("SELECT * FROM `customer` WHERE `ImmediateSuperior` = $parent ORDER BY `Cust_No` ASC");
while($row = mysql_fetch_array($result))
{
for($i=0; $i<$level; $i++)
{
echo "==>";
}
echo "{$row['Cust_Name']}<br/>";
render($row['Cust_No'], $level + 1); // ค้นหาสายของตัวเอง โดนบวก level ไป 1
}
}
render($Cust_No, 0); // เริ่มต้นที่ parent = 0 คือระดับสูงสุด และให้ level = 0
mysql_close();
?>
=============================
ไฟล์ที่ 2
=========== genealogy.sql ============
-- ----------------------------
-- Table structure for customer
-- ----------------------------
CREATE TABLE `customer` (
`Cust_No` varchar(10) NOT NULL,
`Cust_Name` varchar(100) default NULL,
`ImmediateSuperior` varchar(10) default NULL,
`ImmediateSuperior_Team` varchar(10) default NULL,
`ImmediateSuperior_Team_Line` varchar(10) default NULL,
`Email` varchar(40) default NULL,
`MobilePhone` varchar(15) default NULL,
`PVRate` int(11) default NULL,
`DownLine_Left` varchar(10) default NULL,
`DownLine_Right` varchar(10) default NULL,
PRIMARY KEY (`Cust_No`),
KEY `i_ImmediateSuperior` (`ImmediateSuperior`),
KEY `i_ImmediateSuperior_Team` (`ImmediateSuperior_Team`),
KEY `i_ImmediateSuperior_Team_Line` (`ImmediateSuperior_Team_Line`),
KEY `i_DownLine_Left` (`DownLine_Left`),
KEY `i_DownLine_Right` (`DownLine_Right`),
KEY `i_Cust_Name` (`Cust_Name`),
KEY `i_PVRate` (`PVRate`)
) ENGINE=MyISAM DEFAULT CHARSET=tis620 COMMENT='ข้อมูลลูกค้า(Master)';
-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO `customer` VALUES ('001', 'เด่น', null, null, null, 'madensri@hotmail.com', '081-2797521', '1000', '002', '003');
INSERT INTO `customer` VALUES ('002', 'ใจ', '001', '001', 'L', 'jai@hotmail.com', '084-6447064', '900', '004', '005');
INSERT INTO `customer` VALUES ('003', 'ครีม', '001', '001', 'R', 'cream@hotmail.com', '084-12345678', '800', '006', '007');
INSERT INTO `customer` VALUES ('004', 'เคน', '001', '002', 'L', 'ken@hotmail.com', '081-78945612', '700', '008', '009');
INSERT INTO `customer` VALUES ('005', 'ปู', '001', '002', 'R', 'poo@hotmail.com', '082-23546895', '600', null, null);
INSERT INTO `customer` VALUES ('006', 'เปา', '002', '003', 'L', 'pao@hotmail.com', '083-12356485', '500', '010', null);
INSERT INTO `customer` VALUES ('007', 'ไก่', '003', '003', 'R', 'kai@hotmail.com', '084-12354865', '400', null, null);
INSERT INTO `customer` VALUES ('008', 'มด', '003', '004', 'L', 'mod@hotmail.com', '085-15255225', '300', null, null);
INSERT INTO `customer` VALUES ('009', 'ดิว', '005', '004', 'R', 'dew@hotmail.com', '086-25468542', '200', null, null);
INSERT INTO `customer` VALUES ('010', 'เงี่ยม', '007', '006', 'L', 'keam@hotmail.com', '087-25535411', '100', null, null);
===============================
ผลลัพธ์ก็ออกมาตามปกติครับคือ
============================
ใจ
==>เปา
ครีม
==>ไก่
==>==>เงี่ยม
==>มด
เคน
ปู
==>ดิว
=============================
คำถามน่ะครับ หากผมอยากให้มันแสดงผลออกมาแบบนี้
=============================
Level:1
ใจ
ครีม
เคน
ปู
Level:2
เปา
ไก่
มด
ดิว
Level:3
เงี่ยม
=============================
คือให้มันแบ่งออกเป็น Level นั้นเองครับ ผมพยายามลองมาครึ่งวัน มันเพี้ยนอ่ะคับพอจะมีแนวทางไหมครับผมที่จะให้แสดงผลตามต้องการครับ
ขอบคุณครับ

















