2017-02-23 64 views
0

我的問題:當第二個while循環運行時,我得到一個未定義的索引:第一個和最後一個。 我在每個循環中得到正確的第一個和最後一個通知消息。所以一切都很好,除了它不會給我實際的名字。在while循環中查詢時未定義索引?

我是新來的,所以我確信我只是不清楚某些規則或某些事情。

$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」]。但這沒有什麼區別。感謝您的任何意見。

+0

您都指向前者的結果,你的代碼應該是: –

+0

一些明智的代碼縮進將是一個不錯的主意。它可以幫助我們閱讀代碼,更重要的是,它可以幫助您**調試您的代碼** [快速瀏覽編碼標準](http://www.php-fig.org/psr/psr-2/ )爲了您自己的利益。您可能會被要求在幾周/幾個月內修改此代碼 ,最後您會感謝我。 – RiggsFolly

回答

6

改變這一點:

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

此:

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