Таинственная пустая запись в базе данных - PullRequest
0 голосов
/ 20 июля 2010

В системе комментариев на части моего сайта есть странная пустая запись, которая всегда остается над последней реальной записью. Я посмотрел в базе данных напрямую, и там нет пустой записи. Тем не менее, в верхней части всех моих комментариев всегда есть пустое поле, отформатированное так же, как и остальные комментарии. Откуда это исходит и как мне от него избавиться? Вот php:

$query = "SELECT * FROM catharsis";
$result = mysql_query($query);
$num = mysql_numrows($result);

mysql_close();
echo "<h4><center>Let it out.</center></h4>";


echo '<ul class="comments">';

for ($i = 0; $i < $num; $i++) {
    $name = mysql_result($result,$num - $i,"message");
    echo "<li>$name</li>";
    echo '<br>';
}
echo '</ul>';

соответствующие css:

ul.comments {
list-style-type: none;
position: relative;
right: 2.5em;

}

ul.comments li {
list-style-type: none;
background-color: c0dbff;
border-style: solid;
border-width: 1px;
border-color: black;
padding: .4em;
}

Ответы [ 3 ]

3 голосов
/ 20 июля 2010
$query = 'SELECT message FROM catharsis ORDER BY id DESC';
$result = mysql_query($query);
mysql_close();
echo '<h4><center>Let it out.</center></h4>';


echo '<ul class="comments">';

while($t = mysql_fetch_array($result)){
    echo '<li>'.$t[0].'</li><br>';
}
echo '</ul>';
2 голосов
/ 20 июля 2010

Я полагаю, что это происходит с первого раза, когда эта строка выполняется:

$name = mysql_result($result,$num - $i,"message");

Поскольку ваши результаты проиндексированы от 0 до $ num-1, у вас не будет записи с индексом $ num-0. Измените эту строку на

$name = mysql_result($result,$num - $i -1,"message");

или начните $ i с 1 и дайте ему подняться до <= $ num </p>

1 голос
/ 20 июля 2010

Можете ли вы подтвердить, что если вы эхо $num это ноль?

Вы не хотите печатать ul, когда у вас все равно нет записей li, поэтому вам нужно что-то вроде этого:

if ($num > 0)
{
    echo '<ul class="comments">'; 

    for ($i = 0; $i < $num; $i++) { 
        $name = mysql_result($result,$num - $i,"message"); 
        echo "<li>$name</li>"; 
        echo '<br>'; 
    } 
    echo '</ul>'; 
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...