0

我有两张桌子。我希望能够从下面的订单表代码中获取信用表中每个 id 的订单:

$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" ;
  }
}

但我不断收到错误:无法获得订单

是否可以在另一个正在运行时进行查询?

4

2 回答 2

2

可能会发生错误,因为“ORDER”是MySQL 中的保留字。你应该用反引号来逃避它:

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

“日期”也应该如此,尽管这是可以容忍的(在我链接的同一页面中进一步查看)

至于您的问题,您当然可以循环进行查询(尽管就性能而言,这并不是最好的)。但是如果你的表有一个外键(我猜是'recid'和'userid')你可以构建一个JOINed查询

于 2012-12-23T12:45:11.690 回答
1

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

您的 MySQL 查询似乎有错误,因此您应该使用:

echo mysql_error(); 

请参阅您使用的方法的说明:

于 2012-12-23T12:35:05.273 回答