такой вопрос мне нужно сделать чтобы выводилось из БД в 2-3 колонки к примеру я написал скрипт но он че-то барахлит, выводит списки с разрывами, т.е. в одной колонке все 10 записей, а в другой 2 вывело патом 4 пустые строчки дальше остальное и кароче бред. подскажите что в моем коде не ладное а то я немогу понять. PHP: <table width="100%" border="0" cellpadding="3" cellspacing="0"> <?php $qsql = "SELECT * FROM boards ORDER by `board_name` ASC"; if (!$qsql = mysql_query($qsql)) { echo "MySQL ERROR: Запрос не принят!"; die(); } else { $num_qsql = mysql_num_rows($qsql); if ($num_qsql == null) { echo "<b>Записей нет!</b>"; } function odd($id) { global $id ; return $id % 2; } for ($i=0; $i<$num_qsql; $i++) { $data_sql = mysql_fetch_array($qsql); $id = $data_sql['id']; $board_link_ = $data_sql['board_link']; $board_name_ = $data_sql['board_name']; if (odd($id) == 0) { echo "<tr>"; echo "<td width=\"50%\"><a href=\"/adverts/?board={$board_link_}\">$board_name_</a></td>"; } if (odd($id) == 1) { echo "<td width=\"50%\"><a href=\"/adverts/?board={$board_link_}\">$board_name_</a></td>"; echo "</tr>"; } } } ?> </table>
Неладное: 1) функцию odd() вынести за пределы основного скрипта 2) убрать из этой ф-и "global $id;" 3) при выводе ячеек проверять четность не $id, а $i. Т.е., позицию записи при выводе, а не ее id в базе. А то получится, например, удалите из базы запись с id == 5 и у вас id 4 и id 6 выведутся друг под другом, а рядом ячейка останется пустой. Точнее, даже у вас код сгенерится кривой