while循环和MoveNext

时间:2013-01-08 20:33:23

标签: php mysql nested

我需要一些关于嵌套sql查询的最佳方法的建议。我写了一个新的查询来提取额外的信息,作为一个独立的查询工作正常,但当我尝试把MoveNext();在原始命令之前,它会导致页面加载失败。我将在下面举一个例子。

$new_query = "SELECT new_values,new_price
FROM new_table
WHERE new_options_id = 2
AND language = 1";

$new_result = $db->Execute($new_query); 
while (!$new_result->EOF){
$newdata = $new_result->fields['new_values']
$newprice = $new_result->fields['new_price'];

$original_query = "SELECT * FROM this_table WHERE orders_id = '$ship_order_id' and class = 'ot_subtotal'";
$original_result = $db->Execute($original_query);

SOME CODE IN HERE

while (!$original_result->EOF) {

MORE CODE HERE WITH SEVERAL {

RESULTS OF ORIGINAL QUERY ARE OUTPUT
RESULTS OF NEW QUERY ARE OUTPUT

$new_result->MoveNext();
$original_result->MoveNext();

}
} 

MORE CODE WITH CLOSING } FROM EARLIER CODE

问题是放入新的MoveNext()并且它关联}会导致页面加载。 我确实将新查询的数据集合包含在原始数据中,但我的SQL知识有限。 还有另一种解决方法,以便我可以在原始循环中循环结果吗?

1 个答案:

答案 0 :(得分:0)

如果你有多个查询,你需要多个语句对象,否则你将删除前一个语句的前一个结果,如果你在第二个查询中重复使用前一个语句对象。

只要引入第二个语句对象就可以了。

此外,您没有告诉您正在使用哪个数据库客户端库,因此我无法提供任何具体建议。