Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用php实现mysql嵌套子查询_Php_Mysql - Fatal编程技术网

用php实现mysql嵌套子查询

用php实现mysql嵌套子查询,php,mysql,Php,Mysql,我有两张桌子。我希望能够从下面的订单表代码中获取信用表中每个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 = '$i

我有两张桌子。我希望能够从下面的订单表代码中获取信用表中每个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" ;
  }
}
但我一直得到错误:无法获得订单

是否可以在另一台计算机运行时进行查询?

针对您的实际问题: 我认为这个问题不对。第一个查询未运行。它运行并在$downlineresult(mysql\u query)中填充结果,然后,您只需迭代结果的各个部分(mysql\u fetch\u数组)

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

echo mysql_error(); 
请参见所使用方法的说明:

关于您的实际问题: 我认为这个问题不对。第一个查询未运行。它运行并在$downlineresult(mysql\u query)中填充结果,然后,您只需迭代结果的各个部分(mysql\u fetch\u数组)

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

echo mysql_error(); 
请参见所使用方法的说明:


发生错误的原因可能是“订单”是一个错误。您应该使用反勾号来转义它:

$orderquery = "SELECT date,cc,cop FROM `order` WHERE userid=1127" ;
“日期”也应该如此,尽管这是可以容忍的(详见我链接的同一页)


至于您的问题,当然您可以在循环中执行查询(尽管这在性能方面并不是最好的)。但是,如果您的表有foreing键(我猜是'recid'和'userid'),您可以构建一个连接查询,而不是

错误可能会发生,因为“ORDER”是一个键。您应该使用反勾号来转义它:

$orderquery = "SELECT date,cc,cop FROM `order` WHERE userid=1127" ;
“日期”也应该如此,尽管这是可以容忍的(详见我链接的同一页)


至于您的问题,当然您可以在循环中执行查询(尽管这在性能方面并不是最好的)。但是,如果您的表有一个foreing键(我猜是'recid'和'userid'),那么您可以构建一个连接查询,而不是从中得到错误,并请指定错误。这将帮助我给你最好的答案,你是哪里得到错误,请指定错误。这将有助于我给你最好的答案好的发现,而且他应该一起改变桌子的名称。一般规则是不要对变量使用保留字。很好的发现,他也应该一起更改表的名称。一般规则是不要对变量使用保留字。