在php中显示两个sql查询的结果表

8fsztsew  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(271)

我正在编写一个php文件,我想通过执行两个不同的查询来显示两个表,并将它们存储在$result和$result\u中。但是,当我尝试打开这个动作表单的html页面时,它只显示第一个查询的表,并给出错误“命令不同步;现在不能在第二个表的位置运行这个命令。
另外,我不想合并这两个表,因为它们显示完全不同的信息,我想插入一些文本来解释每个表。
我认为这可能与不能为php打印两个表有关(我对此表示怀疑)?我应该做什么改变?
提前感谢您的帮助!

$result = mysql_query("CALL CrashTypeRate_Ped('$city')", $conn);
    if (!$result){
        echo "Fail to retrieve result for pedestrian crashes!\n";
        print mysql_error();
    } else {
        echo "<table border=1>\n";
        echo "<tr><td>CrashType</td><td>Count</td><td>TotalCount</td></tr>\n";
        while ($myrow = mysql_fetch_array($result)) {
            printf("<tr><td>%s</td><td>%s</td><td>%s</td></tr>\n", $myrow["crash_type"], $myrow["type_count"], $myrow["total_count"]);
        }
        echo "</table>\n";
    }

    $result_bike = mysql_query("CALL CrashTypeRate_Bike('$city')", $conn);
    if (!$result_bike) {
        echo "Fail to retrieve result for bike crashes!\n";
        print mysql_error();
    } else {
        echo "got here!!!!!!";
        echo "<table border=1>\n";
        echo "<tr><td>CrashType</td><td>Count</td><td>TotalCount</td></tr>\n";
        while ($myrow = mysql_fetch_array($result_bike)) {
            printf("<tr><td>%s</td><td>%s</td><td>%s</td></tr>\n", $myrow["crash_type"], $myrow["type_count"], $myrow["total_count"]);
        }
        echo "</table>\n";
    }
p3rjfoxz

p3rjfoxz1#

下面是来自php文档的用户评论。希望这有帮助
链接到php文档
调用多个存储过程时,可能会遇到以下错误:“命令不同步;现在不能运行此命令”。即使在调用之间对结果对象使用close()函数,也可能发生这种情况。要解决此问题,请记住在每次存储过程调用之后对mysqli对象调用next_result()函数。见下例:

<?php
// New Connection
$db = new mysqli('localhost','user','pass','database');

// Check for errors
if(mysqli_connect_errno()){
echo mysqli_connect_error();
}

// 1st Query
$result = $db->query("call getUsers()");
if($result){
     // Cycle through results
    while ($row = $result->fetch_object()){
        $user_arr[] = $row;
    }
    // Free result set
    $result->close();
    $db->next_result();
}

// 2nd Query
$result = $db->query("call getGroups()");
if($result){
     // Cycle through results
    while ($row = $result->fetch_object()){
        $group_arr[] = $row;
    }
     // Free result set
     $result->close();
     $db->next_result();
}
else echo($db->error);

// Close connection
$db->close();
?>

相关问题