За последние 24 часа нас посетили 16913 программистов и 1316 роботов. Сейчас ищут 1552 программиста ...

Вывод из БД в 2-3 колонки колонки

Тема в разделе "PHP и базы данных", создана пользователем Георгий Корнев, 21 фев 2007.

  1. Георгий Корнев

    Георгий Корнев Активный пользователь

    С нами с:
    8 фев 2007
    Сообщения:
    67
    Симпатии:
    0
    такой вопрос мне нужно сделать чтобы выводилось из БД в 2-3 колонки

    к примеру я написал скрипт но он че-то барахлит, выводит списки с разрывами, т.е. в одной колонке все 10 записей, а в другой 2 вывело патом 4 пустые строчки дальше остальное и кароче бред. подскажите что в моем коде не ладное а то я немогу понять.

    PHP:
    1. <table width="100%" border="0" cellpadding="3" cellspacing="0">
    2. <?php
    3. $qsql = "SELECT * FROM boards ORDER by `board_name` ASC";
    4. if (!$qsql = mysql_query($qsql))
    5. {
    6. echo "MySQL ERROR: Запрос не принят!";
    7. die();
    8. }
    9. else
    10. {
    11. $num_qsql = mysql_num_rows($qsql);
    12. if ($num_qsql == null)
    13. {
    14. echo "<b>Записей нет!</b>";
    15. }
    16. function odd($id)
    17. {
    18. global $id ;
    19. return $id  % 2;
    20. }
    21. for ($i=0; $i<$num_qsql; $i++)
    22. {
    23. $data_sql   = mysql_fetch_array($qsql);
    24. $id         = $data_sql['id'];
    25. $board_link_        = $data_sql['board_link'];
    26. $board_name_        = $data_sql['board_name'];
    27.  
    28. if (odd($id) == 0)
    29. {
    30. echo "<tr>";
    31. echo "<td width=\"50%\"><a href=\"/adverts/?board={$board_link_}\">$board_name_</a></td>";
    32. }
    33. if (odd($id) == 1)
    34. {
    35. echo "<td width=\"50%\"><a href=\"/adverts/?board={$board_link_}\">$board_name_</a></td>";
    36. echo "</tr>";
    37. }  
    38. }
    39. }
    40. ?>
    41. </table>
     
  2. pel

    pel Активный пользователь

    С нами с:
    19 янв 2007
    Сообщения:
    569
    Симпатии:
    0
    Адрес:
    Симферополь
    Неладное:
    1) функцию odd() вынести за пределы основного скрипта
    2) убрать из этой ф-и "global $id;"
    3) при выводе ячеек проверять четность не $id, а $i. Т.е., позицию записи при выводе, а не ее id в базе. А то получится, например, удалите из базы запись с id == 5 и у вас id 4 и id 6 выведутся друг под другом, а рядом ячейка останется пустой. Точнее, даже у вас код сгенерится кривой
     
  3. Георгий Корнев

    Георгий Корнев Активный пользователь

    С нами с:
    8 фев 2007
    Сообщения:
    67
    Симпатии:
    0
    помогло спасибо )