如果列有选定的词,则输出数据库信息

Issues outputting database information if a column has a selected word

我正在尝试从我的数据库中输出信息,前提是该记录在 'status' 列中填写了 'Pending'。截至目前,这正在中断,我有多个记录 'Pending'填写,在那一栏。

我做错了什么?

<?php
$con = mysqli_connect("localhost", "root", "", "db");
$run = mysqli_query($con,"SELECT * FROM user_requests ORDER BY id DESC");
$numrows = mysqli_num_rows($run);

    if( $numrows > 0) {
        while($row = mysqli_fetch_assoc($run)){
            $pending_id = $row['status'];
                if($pending_id == ["Pending"]){
                    $pending_id = $row['user_id'];
                    $pending_firstname = $row['firstname'];
                    $pending_lastname = $row['lastname'];
                    $pending_username = $row['username'];
                }
        }
    }
                echo $pending_firstname;
?>

更新:

我只得到第一个结果...

if( $numrows > 0) {
        while($row = mysqli_fetch_assoc($run)){
            $pending_id = $row['status'];
                if($pending_id == "Pending"){
                    $pending_id = $row['user_id'];
                    $pending_firstname = $row['firstname'];
                    $pending_lastname = $row['lastname'];
                    $pending_username = $row['username'];
                }
        }
    }
    if ($pending_firstname == true) {
                    echo $pending_firstname;
                } else {
                    echo "There are no Pending Requests as this time.";
                }
  ?>

无需将字符串放在方括号中进行匹配。

if($pending_id == "Pending")...

好的 - 试试这个代码..
您需要在循环中输出您的用户详细信息,否则它们将被覆盖

if( $numrows ) {
    while($row = mysqli_fetch_assoc($run)){            
        if($row['status'] == "Pending"){

            $pending_id        = $row['user_id'];
            $pending_firstname = $row['firstname'];
            $pending_lastname  = $row['lastname'];
            $pending_username  = $row['username'];

            echo "$pending_firstname $pending_lastname $pending_username <br>";

        }
    }
}

看你在一段时间内和另一个 if 语句下声明了 pending_firstname 以及所有变量到 if 语句中。而你在它的范围之外回应 pending_firstname 。这就是您收到此错误的原因。为避免这种情况,首先在全局范围内声明所有变量,然后您就可以从任何地方访问它们。这也是一个很好的做法!

更新

实际上您应该将所有变量声明为数组。并使用 array_push() 方法,您可以将多个数据推送到该数组中,并且您可以在将来使用 foreach 迭代这些数组。