如何从php存储过程调用以加载嵌套数据

如何从php存储过程调用以加载嵌套数据,php,mysql,stored-procedures,Php,Mysql,Stored Procedures,让下一个代码加载类别和每个类别的项以构建表: $db=newmysqli('localhost','root','123456','hdc1') $categorias=$db->query(“调用getCategoria(1);” if($categorias){while($categoria=$categorias->fetch_object()){ $IDCATEGRIA=$CATEGRIA->id; //第二个问题 if($items=$db->query(“调用getItems($i

让下一个代码加载类别和每个类别的项以构建表:

$db=newmysqli('localhost','root','123456','hdc1')

$categorias=$db->query(“调用getCategoria(1);”

if($categorias){while($categoria=$categorias->fetch_object()){
$IDCATEGRIA=$CATEGRIA->id;
//第二个问题
if($items=$db->query(“调用getItems($idcategoria);”){
//循环浏览结果
回显“
查询2”; 而($item=$items->fetch_object()){ echo$item->description; } //自由结果集 $items->close(); $db->next_result(); } } //自由结果集 $categorias->close(); //$db->next_result();}else echo($db->error);
//密切联系 $db->close()

第一个查询是成功执行并加载类别,但是当我想对每个类别执行第二个查询时,结果集总是空的


为什么??没有错误页,没有存储过程错误。。。为什么项的结果集为null…

无法使用mysqli\u query()正确获取从存储过程返回的结果集。mysqli_query()函数将语句执行和将第一个结果集提取到缓冲结果集(如果有)相结合。但是,对用户隐藏的其他存储过程结果集会导致mysqli_query()无法返回用户期望的结果集


从存储过程返回的结果集使用mysqli\u real\u query()或mysqli\u multi\u query()获取。这两个函数都允许获取语句返回的任意数量的结果集,例如,如果您对$idcategoria进行了en echo,则调用

?是。。。变量的值是Right,你知道一个合法的categoria值吗…你可以把这个数字硬编码在你的调用中…示例:call getItems(7)是的,但总是返回null,但是如果在数据库中执行这个过程,会带来很多行。。。我从来没有使用过php,我正在编程,就像它是另一种语言i.e.C#
if ($categorias) { while ($categoria = $categorias->fetch_object()) {

    $idcategoria = $categoria->id;

    // 2nd Query        
    if ($items = $db->query("call getItems($idcategoria);")) {
        // Cycle through results
        echo "<br />query2";

        while ($item = $items->fetch_object()) {
            echo $item->descripcion;
        }

        // Free result set
        $items->close();
        $db->next_result();
    }

}
// Free result set
$categorias->close();
//$db->next_result(); } else echo($db->error);