Здраствуйте, при написание дипломки(интернет магазин) столкнулся с проблемой при выводе товаров из базы данных. Вот код: PHP: <?php session_start(); require_once('include_fns.php'); display_standart_menu(); $catid=$_GET['catid']; do_html_header($name); $name = get_category_name($catid); echo "<table align=left border=1><tr><td>"; $cat_array=get_categories(); display_categories($cat_array); echo "</td></tr></table>"; // Извлечь из базы данных информацию о цветке $flow_array = get_flow($catid); display_flow($flow_array); do_html_footer(); ?> в этом коде извлекаетсья товар из бд по выбранной категории, также имеються функции get_flow() and display_flow() которые представлены ниже: функция get_flow() PHP: function get_flow($catid) { // Выполняет запрос в базу данных книг определенной категории if (!$catid || $catid=='') return false; $conn = db_connect(); $query = "select * from tovar where catid='$catid'"; $result = @$conn->query($query); if (!$result) return false; $num_flow = @$result->num_rows; if ($num_flow ==0) return false; $result = db_result_to_array($result); return $result; } функция display_flow() PHP: <?php function display_flow($flow_array) { // Выводит все товары, переданные в массиве if (!is_array($flow_array)) { echo '<br />В настоящий момент нет доступных книг в этой категории<br />'; } else { // Создать таблицу foreach ($flow_array as $row) { echo '<table width = \"100%\" border = 1 >'; $url = 'show_flow.php?artikul='.($row['artikul']); echo '<tr><td>'; if (@file_exists('tovar/'.$row['artikul'].'.jpg')) { $title = '<img src=\'tovar/'.($row['artikul']).'.jpg\' border=0 />'; do_html_url($url, $title); } else { echo ' '; } echo '</td></tr><tr><td align=center>'; $title = $row['name']; $price=$row['price']; do_html_url($url, $title,$price); echo '</td></tr><tr><td><font face="Arial" color=green size=5>'.$price." руб".'</font>'; echo '</td></tr></table>'; } } } ?> также имееться функция указанная в get_flow PHP: <?php function db_result_to_array($result) { $res_array = array(); for ($count = 0; $row = $result->fetch_assoc(); $count++) $res_array[$count] = $row; return $res_array; } ?> проблема в том, что каждый товар начинаеться с новой строки, а хотелось бы, чтобы в каждой строке было как минимум по 3 товара. http://s002.radikal.ru/i199/1102/b7/fe46904516fd.jpg ссылка на то что выводит.
Это из-за того, что каждый товар выводится в свою таблицу Как вариант можно выводить в ячейки общей таблицы с тремя столбцами. При выводе нужно проверять, нужен ли переход на новую строку Вот примерный код вместо строк 14-34 функции display_flow() PHP: $n=sizeof($flow_array ); $i=0; echo "<table>"; foreach ($flow_array as $row) { if($i%3==0) { echo "<tr>"; } echo '<td>'; echo '<table width = \"100%\" border = 1 >'; $url = 'show_flow.php?artikul='.($row['artikul']); echo '<tr><td>'; if (@file_exists('tovar/'.$row['artikul'].'.jpg')) { $title = '<img src=\'tovar/'.($row['artikul']).'.jpg\' border=0 />'; do_html_url($url, $title); } else { echo ' '; } echo '</td></tr><tr><td align=center>'; $title = $row['name']; $price=$row['price']; do_html_url($url, $title,$price); echo '</td></tr><tr><td><font face="Arial" color=green size=5>'.$price." ???".'</font>'; echo '</td></tr></table>'; echo '</td>'; if(($i!=0 and $i%3==0) or $i==$n-1) { echo "</tr>"; } $i++; } echo "</table>";