2013-03-06 96 views
2

好吧,我想通过嵌套查询访问php/mysql数据库。来自DB的PHP/Smarty嵌套数组

例如。我有2桌1)人和2)注册。我在注册中有一个refferal id选项卡。因此,当用户登录时,他应该能够看到4个级别的注册完成在他的ID下方。

表结构

注册 ID |注册ID | regtype |上线ID | uid |名字|中间名| | LastName Last etc

personal

id | uid |上线| fname | miname | lname |等很多其他的细节

现在我这样做是为了达到第一级。

$tid=$_GET['tid']; 
$con = mysql_connect("localhost","db","password"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 
else 
{ 
mysql_select_db("db", $con); 
$resulta = mysql_query("SELECT * FROM personal WHERE id=$tid "); 
$counta = mysql_num_rows($resulta); 
while ($rowa = mysql_fetch_assoc($resulta)) { 
$selid=$rowa['uid']; 
$amount=$rowa['amountf']; 
$plan=$rowa['planname']; 
$resultfulla[] = $rowa; 
} 
$resultb = mysql_query("SELECT * FROM regtab WHERE regtab.upline=$selid "); 
$countb = mysql_num_rows($resultb); 
$rowz=array(); 
while ($rowb = mysql_fetch_assoc($resultb)) { 
$rowz[] = $rowb; 
} 

现在我能够达到一个级别,但我如何循环第二个数组和稍后将生成的数组以获得树结构。或者如此....任何帮助....

随着阵列rowz我能够存储我已经完成的第一线注册结果。现在使用这个数组,我需要找出如何获得第二行注册,已经完成阵列rowz .....

回答

1

加入您的查询,并得到结果。

$sql = "SELECT * FROM personal 
     LEFT JOIN regtab ON regtab.upline = personal.uid 
     WHERE personal .id=".$tid; 

在php中获取所有结果。

+0

我知道了它的完成..感谢很多Prasanth – DarthVader 2013-03-21 08:40:45

+0

如果您发现答案有帮助,接受它,其他人可能会觉得它有用,谁会得到同样的问题。 – 2013-03-21 08:45:05

+0

+1 from me ;-)希望接受来自[这里](http://stackoverflow.com/questions/15542880/parent-child-relationship-within-a-single-table)... – Sepster 2013-03-21 09:39:25