PHP Mysql_fetch_assoc正在省略最后一行

时间:2013-01-03 01:15:40

标签: php

在PHP中,MYSQL_FETCH_ASSOC省略了Last Row。这从未发生过。但这次它让我在最后一刻喝汤。

即使我已经提出了mysql_num_rows,结果是14条记录 - 但在列表中它只显示了13条记录,而第14条记录被省略。

任何形式的帮助都是赞赏的。

                $uno = $_GET["uno"];

                $xtc1 = 'select * from rform where uno="' . $uno . '" order by rno DESC';
                $xtc = mysql_query($xtc1) or die('User Reservation Retrival Error : ' . mysql_error());

                $trno = mysql_fetch_assoc($xtc);
                $trow = mysql_num_rows($xtc);


                echo '<p>List of Onlilne Reservations made by <strong style="font-weight:bold; color:red;">' . ucwords($trno["cname"]) . ' (' . $trow . ')</strong></p>';

                echo '<table cellpadding="5" cellspacing="0" border="1">';
                    echo '<tr>';
                        echo '<td colspan="5" style=" font-size:14px; text-align:center; font-weight:bold; color:red;">' . ucwords($trno["cname"]) . '</td>';
                    echo '</tr>';
                    echo '<tr>';
                            echo '<th>R.NO</th>';
                            echo '<th>From</th>';
                            echo '<th>To</th>';
                            echo '<th>Date &amp; Time of<Br>Travel</th>';
                            echo '<th>Reserved On</th>';
                        echo '</tr>';   
                    while($mtn = mysql_fetch_assoc($xtc)){
                        $dt = $mtn["csdate"] . ' ' . $mtn["ctime"];
                        echo '<tr>';
                            echo '<td>' . $mtn["rno"] . '</td>';
                            echo '<td>' . $dt . '</td>';
                            echo '<td>' . $mtn["caddr"] . '</td>';
                            echo '<td>' . $mtn["cdest"] . '</td>';
                            echo '<td>' . date('d-M-Y',strtotime($mtn["tstamp"])) . '</td>';
                        echo '</tr>';   
                    }
                    echo '</table>';

2 个答案:

答案 0 :(得分:2)

你有一个额外的$trno = mysql_fetch_assoc($xtc)你要丢弃。这是你遗失的行。只需删除该行。

答案 1 :(得分:0)

删除第一个$trno = mysql_fetch_assoc($xtc);将解决此问题。

如果您需要在循环之前阅读$xtc的第一行。您可以将while循环更改为do-while,而不删除第一个$mtn = mysql_fetch_assoc($xtc);

do{
    //whatever
}while($mtn = mysql_fetch_assoc($xtc));