2012-12-23 140 views
0

我有两个表。我希望能够得到每个ID的订单从下订单表码信贷表:mysql与php嵌套子查询

$downlinequery = "SELECT recid, Level, sp1 FROM credit 
        WHERE sp1 = '$id' or sp2 = '$id' or sp3 = '$id' or sp4 = '$id' 
        or sp5 = '$id' or sp6 = '$id' or sp7 = '$id' or sp8 = '$id'" ; 
$downlineresult = mysql_query($downlinequery) ; 
while ($downlinerow = mysql_fetch_array($downlineresult)) { 
    extract($downlinerow) ; 
    $orderquery = "SELECT date,cc,cop FROM order WHERE userid='1127'" ; 
    $orderresult = mysql_query($orderquery) or die("unable to get orders"); 
    while($orderrow = mysql_fetch_array($orderresult)){ 
    extract($orderrow); 
    echo "$date,$cc,$cop" ; 
    } 
} 

,但我不断收到错误:无法拿到订单

是否有可能使另一个正在运行的查询?

+0

你得到错误并且请指定错误。这会帮助我给你最好的答案 – Ravi

回答

1

到你的实际问题: 我不认为这个问题是正确的。第一个查询没有运行。它运行并将结果填充到$ downlineresult(mysql_query)中,然后,您只需遍历结果的各个部分(mysql_fetch_array)。

看来你在你的MySQL查询有错误,所以你应该使用:

echo mysql_error(); 

见的使用方法的说明:

2

错误可能会发生,因为“ORDER”是一个reserved word in MySQL。你应该用反引号转义:

$orderquery = "SELECT date,cc,cop FROM `order` WHERE userid=1127" ; 

同样应该是“约会”,虽然这被容忍(见在同一页我联系进一步下跌)

至于你的问题,当然你也可以在循环中进行查询(尽管这在性能方面并不是最好的)。但是如果你的桌子有一个外键(我猜'recid'和'userid'),你可以建立一个JOINed查询,而不是

+0

好的发现,他也应该改变表的名字。一般规则是不要为变量使用保留字。 – kabuto178