[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод данных в таблицу (не Попов :D)
koala
Есть модуль вывода данных в таблицу (почти), тоесть - <tr>
Есть шаблон куда будет выводится информация. Ну и файл в который будем подключать шаблон. Стараюсь соблюдать MVC =)

Код модуля:



/**
*
@author koala
*
@copyright 2010
* Модуль вывода сообщений
*/


error_reporting (E_ALL);

$result = mysql_query ("SELECT * FROM `test_messages`");
$row = mysql_fetch_assoc ($result);
$table_messages = '';
while ($row = mysql_fetch_assoc($result))
{
$table_messages .= '<tr>';
$table_messages .= '<td>' . $row['uname_sender'] . '</td>';
$table_messages .= '<td>' . $row['theme'] . '</td>';
$table_messages .= '<td>' . $row['messages_text'] . '</td>';
$table_messages .= '<td>' . $row['date'] . '</td>';
$table_messages .= '<td>' . $row['id'] . '</td>';
$table_messages .= '</tr>';
}


Код шаблона:

<table border="1" class="table_info" align="center">
<
tr>
<
td colspan="5" align="center"><a href="?send_message">Отправиль сообщение</a></td>
</
tr>
<
tr>
<
td width="20%">Отправитель</td>
<
td>Тема</td>
<
td>Сообщение</td>
<
td>Дата</td>
<
td>Действия</td>
</
tr>
<?php
echo $table_messages;
?>
</table>


Проблема в том, что выводит только одну строку и все. А в базе две строки с данными. Подскажите где я сделал ляп =)



Спустя 17 минут, 3 секунды (25.11.2010 - 16:52) sergeiss написал(а):
Вот эта строка, прописанная выше цикла, забирает первую строку. Удали сей код и оставь чтение только в цикле.
Цитата (koala @ 25.11.2010 - 17:35)
$row = mysql_fetch_assoc ($result);


Спустя 14 минут, 32 секунды (25.11.2010 - 17:07) koala написал(а):
sergeiss, убрал строку, не помогло =( Тоже выводит одну строку.

Спустя 23 минуты, 4 секунды (25.11.2010 - 17:30) inpost написал(а):
koala
А должно работать.

Спустя 9 минут, 22 секунды (25.11.2010 - 17:39) koala написал(а):
 error_reporting (E_ALL);

$result = mysql_query ("SELECT * FROM `test_messages`");
$row = mysql_fetch_assoc ($result);
while ($row = mysql_fetch_assoc($result))
{
$table_messages .= '<tr>';
$table_messages .= '<td>' . $row['uname_sender'] . '</td>';
$table_messages .= '<td>' . $row['theme'] . '</td>';
$table_messages .= '<td>' . $row['messages_text'] . '</td>';
$table_messages .= '<td>' . $row['date'] . '</td>';
$table_messages .= '<td>' . $row['id'] . '</td>';
$table_messages .= '</tr>';
}


Вот как изменился код после совета? Или надо было сделать так?


error_reporting (E_ALL);

$result = mysql_query ("SELECT * FROM `test_messages`");
$row = mysql_fetch_assoc ($result);
while ($row = mysql_fetch_assoc($result))
{
$table_messages = '<tr>';
$table_messages .= '<td>' . $row['uname_sender'] . '</td>';
$table_messages .= '<td>' . $row['theme'] . '</td>';
$table_messages .= '<td>' . $row['messages_text'] . '</td>';
$table_messages .= '<td>' . $row['date'] . '</td>';
$table_messages .= '<td>' . $row['id'] . '</td>';
$table_messages .= '</tr>';
}


Два варианта попробовал, результат тот же =(

Спустя 4 минуты, 40 секунд (25.11.2010 - 17:44) inpost написал(а):
Тебе же написали, убери эту строчку:
$row = mysql_fetch_assoc ($result);

Спустя 5 минут, 9 секунд (25.11.2010 - 17:49) koala написал(а):
Спасибо, все заработало, я немного не понял вас...

Насколько я понял, то в $row была только одна строчка (без цикла), поэтому и выводило только ее. И потом цыкл выводил пока будет $row, а в нем только одна строка.

Всем спасибо за помощь. +

Спустя 1 минута, 38 секунд (25.11.2010 - 17:51) inpost написал(а):
$row = mysql_fetch_assoc ($result); - значит, что выбирается следующий элемент! В начале ты выбрал первый! А в цикле WHILE сначала идёт выборка, потом код. Так что у тебя перещелкнул на второй ряд и вывелся!

Спустя 4 минуты, 27 секунд (25.11.2010 - 17:55) sergeiss написал(а):
Цитата (koala @ 25.11.2010 - 18:49)
Спасибо, все заработало, я немного не понял вас...

Да ты заходи, если чего smile.gif Было бы желание разобраться самому, так и поможем, кто чем может.

Спустя 2 часа, 6 минут, 35 секунд (25.11.2010 - 20:02) koala написал(а):
sergeiss, я сюда каждый день захожу. Программирование на PHP занимаюсь уже вот 3-4 месяца. Каждый день понемножку =)


_____________
Vi Veri Veniversum Vivus Vici
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.