Как сделать вывод информации из MySQL в три колонки HTML таблицы К примеру: Код (Text): <TABLE><TR><TD>$name</TD><TD>$name</TD><TD>$name</TD></TR></TABLE> <TABLE><TR><TD>$name</TD><TD>$name</TD><TD>$name</TD></TR></TABLE> <TABLE><TR><TD>$name</TD><TD>$name</TD><TD>$name</TD></TR></TABLE> ... Переменная $name выводится из MYSQL таблицы. Выглядеть должно вот так: 1 2 3 4 5 6 7 В поиск не посылать, уже запарился искать!
сначала вопрос: ты можешь, допустим, твои 7 чисел выстроить так, как тебе нужно (в 3 колонки)? без всяких баз данных. PS: код оформляй с помощью соответствующих тэгов.
Вы что блондинки что-ли??? Конечно нельзя зделать в 1 колонке потому что, задача стоит сделать в 3х рядах. 1 2 3 4 5 6 7 Я показал как пример, на месте цифр должен быть текст и их не семь а больше!
просто реализуй счетчик типа 123 123 123 123 123 123 И считай такты: «Раз! - Подпрыгнул, Два! - Подпрыгнул, Три! - Закончили!» PHP: <?php $counter=0; $frommsql = array('a', 'b', 'c', 'd', 'e', 'f', 'g'); echo('<table border="1">'); foreach ($frommsql as $value) { if ($counter==3) {$counter=1;} else {$counter++;} if ($counter==1) echo('<tr>'); echo("<td>".$value."</td>"); if ($counter==3) echo('</tr>'); } echo('</table>'); ?> Можешь его еще colspan-овой проверкой снабдить =)
draak Прежде чем советовать подумай, а знаешь ли ты что говоришь ? Nikola РЕШЕНИЕ №1: (самое простое) Берёшь данные, запихиваешь их из MySQL в двух-мерный массив (почти так как draak их выводит, только нормально, без извращений) а потом выводишь построчно с помощью foreach() и implode() Добавлено спустя штаны: (с) Vladson А вообще Nikola тебе сегодня наверное повезло, вот тебе готовое решение... PHP: <?php // Сами данные $array = array(1, 2, 3, 4, 5, 6, 7, 8); // Количество ячеек $cols = 3; // Количество строчек $rows = ceil(count($array)/$cols); // Подгоовка данных $temp = array(); for ($i=0; $i<$rows; $i++) { // Заполнение простых ячеек $temp[$i] = array_slice($array, ($i*$cols), $cols); // Заполнение пустых ячеек (если есть) $extra = $cols - count($temp[$i]); for($j=0; $j<$extra; $j++) $temp[$i][] = '-'; } // Вывод на экран echo '<table border>'; foreach ($temp as $row) { echo '<tr><td>' . implode('</td><td>', $row) . '</td></tr>'; } echo '</table>'; // Конец :) exit; ?> (мне просто нечно подобное как раз сегодня понадобится, по этому и написал)
Есть такая замечательная функция в php >= 4.2.0 -- array_chunk решение с ней могло бы выглядеть так: PHP: <?php $array = array('a', 'b', 'c', 'd', 'e', 'f', 'g'); $rows = array_chunk($array,3); print "<table>"; foreach($rows as $row) { print " <tr>"; foreach($row as $cell) print "<td>{$cell}</td>"; print "</tr>\n"; } print "</table>\n"; ?> Если для несуществующих ячеек последней строки нет потребности делать красотищу, то их можно и не выводить вообще ...
есть такой замечательный оператор в пхп, начиная с самой первой версии - for при его использовании ни array_chunk не нужен, ни массив (данные могут читаться из потока), ни наведение красоты.
Чебурген, следуя такой логике, есть не менее прикольный оператор - if и нормальный запас трудолюбия... :lol:
грубое нарушение ЧЕГО? Вот html код сгенерированный на основании моего примера. DTD Strict! Код (Text): <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>x</title> </head> <body> <table> <tr><td>a</td><td>b</td><td>c</td></tr> <tr><td>d</td><td>e</td><td>f</td></tr> <tr><td>g</td></tr> </table> </body> </html> Вот http://validator.w3.org/ И какой будет результат? Так чего же "грубое нарушение", а? Правильно - ничего, кроме предубеждений... Чебурген, а у вас сложилось впечатление что я говорю не думая?...
1 - Предупреждения это не ошибки, но и не просто так (как и нотисы РНР) 2 - При неудачном стечении обстоятельств вся вёрстка поедет.
единственное что идет на ум - это невозможность для несуществующих ячеек нарисовать корректные бордеры и фон... но о красотище я же сразу сказал!
Поимейте совесть! Я, вместо того что бы рядом со своей будущей женой спать спокойно, сижу тут ночью, и чищу ваш флуд. Мне и обычных балбесов на форуме за глаза, а еще тут вы, как дети деретесь...
Хоть и подчистили тему, но все-таки немного вернусь напомню, что речь о выборке из mysql, и ни о каком потоке речи быть не может. А вот массив - уже есть. Уверен, что написать два вложенных for это далеко не эффективнее чем одну строку с array_chunk. Кроме того циклы php обрабатывает медленнее, чем встроенные скомпиленные функции.
Поэтому хотелось бы разъяснений, поподробнее. "такой" - это какой? Что в этой логике неудачного? Конкретно. И какая связь с трудолюбием и оператором if
Хех. До меня дошло, что именно ты не понял. А жаль. пришлось такую уничтожительную тираду стереть. циклы for служат не для замены твоей array_chunk (которая здесь не пришей кобыле хвост). вот уж мне делать нечего, как писать комментарий с советом заменять встроенные функции кодом. (это ж каким дураком надо меня считать, чтобы так подумать...) for служат заменой foreach и коду сразу перестают требоваться - array-chunk, который рубит массив - сам массив - дополнительный код для украшения, поскольку ячеек выводится ровно столько, сколько нужно.