Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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 在另一个查询上循环时在内部打开查询_Php_Mysql_Sql_Select_While Loop - Fatal编程技术网

Php 在另一个查询上循环时在内部打开查询

Php 在另一个查询上循环时在内部打开查询,php,mysql,sql,select,while-loop,Php,Mysql,Sql,Select,While Loop,我需要在另一个查询上的while循环中打开一个查询,以便它由第二个查询的结果驱动 $r=new COM("ADODB.Recordset"); $g=new COM("ADODB.Recordset"); $g->Open("SELECT * FROM question ORDER BY ID;",$db); while ($g->EOF == FALSE){ $ID=$g->Fields["ID"]->value; $r->Open("S

我需要在另一个查询上的while循环中打开一个查询,以便它由第二个查询的结果驱动

$r=new COM("ADODB.Recordset");

$g=new COM("ADODB.Recordset");

$g->Open("SELECT * FROM question ORDER BY ID;",$db);

while ($g->EOF == FALSE){

    $ID=$g->Fields["ID"]->value;

    $r->Open("SELECT * FROM Answers WHERE Username='".$_GET["Username"]."' AND questionID=".$ID.";",$db);

    $g->MoveNext();
}

而且它不起作用。。当我把
$r->open(…)
放在外面的时候就可以了。。。但是我需要在其中使用第一个查询的结果。

为什么不使用联接将两个查询合并为一个呢

"select Answers.ID, Question.ID from Answers inner join Questions where Questions.ID=Answers.QuestionID and Answers.Username=" . $_GET["Username"]

通过连接相互关联的答案和问题,将两个表格合并

“它不起作用…”它怎么不起作用?这是一个错误吗?它是一个空白的白色屏幕吗?它是否给您提供了不正确/不完整的结果?致命错误:未捕获异常“com_exception”,消息为“Source:ADODB.Recordset
描述:当对象打开时,不允许操作是否确实应该使用$r->Open进行查询?似乎每次进行新查询时都要打开与数据库的新连接。更好的方法是打开1个连接,然后使用$r->Execute进行查询。有关更多详细信息,请参阅。或者,正如我在回答中建议的那样,您可以通过执行联接来避免执行多个查询。@dognose它的数据库连接
$sc=“C:\\Users\\a\\Desktop\\xamplite\\htdocs\\X\\Surveys.mdb”$cn=“Provider=Microsoft.Jet.OLEDB.4.0;数据源=”$资深大律师。";"; $db=新COM(“ADODB.Connection”)$db->Open($sc)@stephen它正在其他页面上工作(我正在使用ms access)