This question already has answers here:
“Notice: Undefined variable”, “Notice: Undefined index”, and “Notice: Undefined offset” using PHP
                                
                                    (28个答案)
                                
                        
                                2年前关闭。
            
                    
我的问题:当第二个while循环运行时,我得到一个未定义索引:第一个和最后一个。
在每个循环中我得到正确数量的第一条和最后一条Notice消息。所以一切都很好,除了它不会给我真实的名字。

我对此并不陌生,因此可以肯定我对某些规则或某些内容尚不清楚。

$sql = "SELECT * FROM practice WHERE tid='$tid' ORDER BY date";
$result = mysqli_query($conn, $sql);

while ($row = mysqli_fetch_assoc($result)) {
    echo "<br> ". $row["date"]. " @ " . $row["time"] ." ". $row["pid"] ."
        <form action='includes/joinpractice.inc.php' method='POST'>
        <input type='hidden' name='pid' value='". $row["pid"] ."'>
        <input type='hidden' name='uid' value='". $id ."'>
        <button type='submit'>Join Practice</button>
        </form> <br>";

    $sql = "SELECT user.first, user.last
            FROM user
                INNER JOIN practice_part ON user.id=practice_part.uid
            WHERE pid = '". $row["pid"] ."'";

    $innerresult = mysqli_query($conn, $sql);

    while ($innerrow = mysqli_fetch_assoc($innerresult)) {
        echo "<br> ". $row["first"] ." ". $row["last"] ."";
    }
}


我尝试使用
。 $ row [“ user.first”]。“”。 $ row [“ user.last”]。但这没什么区别。感谢您的投入。

最佳答案

改变这个:

echo "<br> ". $row["first"] ." ". $row["last"] ."";


为了这:

echo "<br> ". $innerrow["first"] ." ". $innerrow["last"] ."";

关于php - 在while循环内查询时未定义索引? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42427789/

10-11 06:28