-2

プライベートメッセージシステムを作成していてmysqli_fetch()、ステートメントで関数を使用whileして、クエリに関連付けられているすべての行を返しています。ただし、PHPはMYSQLの最後の行のみを返します。

これが私のコードです:

<?php
$Connect = new mysqli("localhost", "root", "", "Data");
error_reporting(E_ALL ^ E_NOTICE);
session_start();
$Val = $_POST['ID'];
$Get = 'SELECT * FROM CMessages WHERE PID="'.$Val.'"';
$Username = $_SESSION['Username'];
$Admin = $_SESSION['Admin'];

    if($Result = $Connect->query($Get))
    {
    while($Row = $Result->fetch_assoc())
    {
        $User = $Row['Username'];
        $Msg = $Row['Msg'];
        $Date = $Row['Date'];
        $ID = $Row['ID'];

        if($User == $Username)
        {
            $MText['T'] = '<div id="Msg">' . $User . ' : ' . $Msg . ' - ' . $Date .' - <a class="TLink" href="MDelete.php?ID='.$ID.'">Delete</a></div>';
        }
        elseif(isset($Admin))
        {
            $MText['T'] = '<div id="Msg">' . $User . ' : ' . $Msg . ' - ' . $Date .' - <a class="TLink" href="MDelete.php?ID='.$ID.'">Delete</a></div>';
        }
        else
        {
            $MText['T'] = '<div id="Msg">' . $User . ' : ' . $Msg . ' - ' . $Date .'</div>';
        } 
    }
    }

   echo json_encode($MText);
   ?>
4

1 に答える 1

3

すべての行を返しますが、whileループでは、常に$MText変数を上書きしています。したがって、最後のものだけが。で表示されjson_encodeます。

多分あなたは$MText['T'][]の代わりに書くつもりでし$MText['T']た。

于 2013-02-12T02:17:43.563 に答える