php在while中的多个查询

php在while中的多个查询,php,wordpress,mysqli,while-loop,Php,Wordpress,Mysqli,While Loop,我遇到了一个似乎找不到解决办法的问题 我目前正在与wordpress合作,我正在编写一个插件,可以在管理仪表板上显示当前用户正在处理的“项目”。为此,我需要2个查询,但由于某种原因,网站在查询第二个查询时停止工作 我有三张桌子 wp\u帖子(帖子名称和ID) wp\u cpm\u用户角色(项目id和用户id) wp\u用户(ID和登录名) 其中: wp_posts.ID = wp_cpm_user_role.project_id 以及: 到目前为止我的代码 Function assigned_

我遇到了一个似乎找不到解决办法的问题

我目前正在与wordpress合作,我正在编写一个插件,可以在管理仪表板上显示当前用户正在处理的“项目”。为此,我需要2个查询,但由于某种原因,网站在查询第二个查询时停止工作

我有三张桌子

wp\u帖子(帖子名称和ID)

wp\u cpm\u用户角色(项目id和用户id)

wp\u用户(ID和登录名)

其中:

wp_posts.ID = wp_cpm_user_role.project_id
以及:

到目前为止我的代码

Function assigned_projects(){
//database information
$current_user = wp_get_current_user();
    $servername = "localhost";
    $username = "root";
    $password = "Password1";
    $dbname = "wordpress";

    //Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);

    if ($mysqli->connect_errno)
    {
            printf("Connect failed: %s\n", $mysqli->connect_error);
            exit();
    }

//First query
    $sql = "SELECT wp_posts.post_name, wp_posts.ID 
FROM wordpress.wp_posts 
INNER JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id 
WHERE post_type = 'cpm_project' AND meta_key = '_project_active' AND meta_value = 'yes'";
$result = $conn->query($sql);

//get login name on current user
    $user = $current_user->user_login;

    //prepare table for presentation
            echo '<table class="HOTtable">';
            echo '<tr>';
            echo '<td class="tdcenter">Project name<hr></td>';
            echo '<td class="tdright">Quick link<hr></td>';
            echo '</tr>';

    if ($result->num_rows > 0)
    {
            //output data of each row
            while($row = $result->fetch_assoc())
            {
                    $name = $row["post_name"];
                    $ID = $row["ID"];

        //create a direct link to the project url
                    $url = "https://localhost/wp-admin/admin.php?page=cpm_projects&tab=project&action=overview&pid=" . $ID;

        //second query to match users with projects
                    $sql1 = "SELECT wp_cpm_user_role.user_id, wp_cpm_user_role.project_id, wp_users.user_login FROM wordpress.wp_cpm_user_role INNER JOIN wp_users ON wp_cpm_user_role.user_id = wp_users.ID WHERE wp_cpm_user_role.project_id =" . $ID;
                    $result1 = $conn->query($sql1);

                    while($row1 = $result1->fetch_assoc())
                    {
                            if ($user == $row1["user_login"] AND $ID == $row1["project_id"])
                            {
                                    echo '<tr>';
                                    echo '<td class="tdcenter">' . $name . '<hr></td>';
                                    echo '<td class="tdright"><a href=' . $url . '>I am the link</a><hr></td>';
                                    echo '</tr>';
                            }
                    }
            }
    }
    echo '</table>';
    $conn->close;
}
分配的功能\u项目(){
//数据库信息
$current_user=wp_get_current_user();
$servername=“localhost”;
$username=“root”;
$password=“Password1”;
$dbname=“wordpress”;
//创建连接
$conn=newmysqli($servername、$username、$password、$dbname);
如果($mysqli->connect\u errno)
{
printf(“连接失败:%s\n”,$mysqli->Connect\u错误);
退出();
}
//第一个问题
$sql=“选择wp\u posts.post\u名称、wp\u posts.ID
来自wordpress.wp_帖子
wp_posts.ID上的内部连接wp_postmeta=wp_postmeta.post_ID
其中post_type='cpm_project'和meta_key='u project_active'和meta_value='yes';
$result=$conn->query($sql);
//获取当前用户的登录名
$user=$current\u user->user\u login;
//准备演讲用的桌子
回声';
回声';
echo“项目名称
”; 回声“快速链接
”; 回声'; 如果($result->num_rows>0) { //每行的输出数据 而($row=$result->fetch_assoc()) { $name=$row[“post_name”]; $ID=$row[“ID”]; //创建指向项目url的直接链接 $url=”https://localhost/wp-admin/admin.php?page=cpm_projects&tab=project&action=overview&pid=“$ID; //将用户与项目匹配的第二个查询 $sql1=“选择wp\u cpm\u user\u role.user\u id,wp\u cpm\u user\u role.project\u id,wp\u users.user\u登录自wordpress.wp\u cpm\u user\u role内部加入wp\u用户在wp\u cpm\u user\u role.user\u id=wp\u users.id,其中wp\u cpm\u user\u role.project\u id=“.id; $result1=$conn->query($sql1); 而($row1=$result1->fetch_assoc()) { 如果($user==$row1[“user\u login”]和$ID==$row1[“project\u ID”]) { 回声'; 回显“.$name.”
; 回声“
”; 回声'; } } } } 回声'; $conn->close; }
我试图删除我的代码并从我的原始帖子中复制代码,现在它可以工作了


编码令人困惑。但是感谢您花时间:)

您的源代码是否通过了第二个查询?你看过MySQL错误日志了吗?试试echo$sql1;并在PHPMyAdmin中运行它,查看是否有任何错误
Function assigned_projects(){
//database information
$current_user = wp_get_current_user();
    $servername = "localhost";
    $username = "root";
    $password = "Password1";
    $dbname = "wordpress";

    //Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);

    if ($mysqli->connect_errno)
    {
            printf("Connect failed: %s\n", $mysqli->connect_error);
            exit();
    }

//First query
    $sql = "SELECT wp_posts.post_name, wp_posts.ID 
FROM wordpress.wp_posts 
INNER JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id 
WHERE post_type = 'cpm_project' AND meta_key = '_project_active' AND meta_value = 'yes'";
$result = $conn->query($sql);

//get login name on current user
    $user = $current_user->user_login;

    //prepare table for presentation
            echo '<table class="HOTtable">';
            echo '<tr>';
            echo '<td class="tdcenter">Project name<hr></td>';
            echo '<td class="tdright">Quick link<hr></td>';
            echo '</tr>';

    if ($result->num_rows > 0)
    {
            //output data of each row
            while($row = $result->fetch_assoc())
            {
                    $name = $row["post_name"];
                    $ID = $row["ID"];

        //create a direct link to the project url
                    $url = "https://localhost/wp-admin/admin.php?page=cpm_projects&tab=project&action=overview&pid=" . $ID;

        //second query to match users with projects
                    $sql1 = "SELECT wp_cpm_user_role.user_id, wp_cpm_user_role.project_id, wp_users.user_login FROM wordpress.wp_cpm_user_role INNER JOIN wp_users ON wp_cpm_user_role.user_id = wp_users.ID WHERE wp_cpm_user_role.project_id =" . $ID;
                    $result1 = $conn->query($sql1);

                    while($row1 = $result1->fetch_assoc())
                    {
                            if ($user == $row1["user_login"] AND $ID == $row1["project_id"])
                            {
                                    echo '<tr>';
                                    echo '<td class="tdcenter">' . $name . '<hr></td>';
                                    echo '<td class="tdright"><a href=' . $url . '>I am the link</a><hr></td>';
                                    echo '</tr>';
                            }
                    }
            }
    }
    echo '</table>';
    $conn->close;
}