Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Вывод из mySQL


Автор: Matew 29.3.2009, 20:43
Здравствуйте, столкнулся с небольшой проблемой. Есть база, в ней n записей, так вот надо вывести эти записи на страницу, допустим, по 5 записей в одну строку. Немогу придумать как это сделать ) Разумеется циклом...

Автор: azesmcar 29.3.2009, 20:52
Код

$str = '';
while ($obj = mysql_fetch_object($res))
{
   $str .= $obj->ID . $obj->SOMETHING. '<br>';
}


например так

Автор: enof 29.3.2009, 20:54
Код
    
$i = 0;
while()
{
    if(++$i == 5)
    {
        $i = 0;
        echo "<br>Перенос строки";
    }
    echo "Данные";
}

Автор: azesmcar 29.3.2009, 21:13
Matew неверно понял задачу

Код

$i = 0;
while ($obj = mysql_fetch_object($res))
{
   if ($i % 5 == 0)
      echo '<br>';
   echo ...
   $i++;
}

Автор: Matew 29.3.2009, 21:43
Спасибо большое, пошел пробовать.

Автор: Matew 30.3.2009, 05:12
Впринципе работает, но есть одно но )
Если у меня вывод построен на таблице, то есть каждая выводимая запись помещается в отдельную ячейку таблицы?
Такого вида:
Код

<?
echo "<table>";
$vibor="select * from table";
$res=mysql_query($vibor); 
while ($rez=mysql_fetch_array($res)){
echo '<tr><td>';
echo $rez['pole'];
echo '</td></tr>';
}
echo "</table>";
?>

Тогда как быть? )

Автор: SneG0K 30.3.2009, 13:30
Блин, что вы чудите? Надо пять записей?
Код

SELECT * FROM `table` LIMIT 0,5


Цитата(Matew @  30.3.2009,  04:12 Найти цитируемый пост)
while ($rez=mysql_fetch_array($res)){

Ошибка!!! После первого прохода цикла в $rez будет уже не указатель на данные, а сами данные.
Сделай так
Цитата(Matew @  30.3.2009,  04:12 Найти цитируемый пост)
$res=mysql_query($vibor); 
while ($data=mysql_fetch_array($res)){


Автор: azesmcar 30.3.2009, 13:35
SneG0K
у него $rez и $res. Некрасиво, но нормально, работать будет  smile 

Автор: enof 30.3.2009, 13:37
Код

<?
echo "<table><tr>";
$vibor="select * from table";
$res=mysql_query($vibor);
$i = 0;
while ($rez=mysql_fetch_array($res))
{
    echo ($i++ % 5 == 0) ? '</tr><tr>' : '';
    echo "<td>".$rez['pole']."</td>";
}
echo "</tr></table>";
?>

Автор: Matew 30.3.2009, 14:07
enof, спасибо, Ваш вариант работает!
SneG0K У меня там 2 разные переменные ) $res И $rez, так что все нормально работает  smile 
Тему можно закрывать, всем спасибо!

Автор: SneG0K 30.3.2009, 21:33
Цитата(Matew @  30.3.2009,  13:07 Найти цитируемый пост)
SneG0K У меня там 2 разные переменные ) $res И $rez, так что все нормально работает

о_0 Ужос...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)