2017-02-23 5 views
0

私の問題:2番目の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"]。しかし、これは違いはありませんでした。入力いただきありがとうございます。このため

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

:この

+0

、あなたのコードは次のようになります。 –

+0

いくつかの賢明なコードのインデントが良いでしょう。コードを読むのに役立ちます。もっと重要なのは**あなたのコードをデバッグするのに役立ちます** [コーディング標準を見てください](http://www.php-fig.org/psr/psr-2/ )あなた自身の利益のために。あなたはこのコード を数週間/数ヶ月で修正するように頼まれるかもしれません。そして、あなたは私に最後に感謝します。 – RiggsFolly

答えて

6

変更するには、かつての結果を指している

echo "<br> ". $innerrow["first"] ." ". $innerrow["last"] .""; 
関連する問題