Генерация таблицы средствами PHP

vladislafus

Новичок
Доброе время суток. На просторах интернета на эту тему сперва нашел очень простенький, но эффективный скрипт.

PHP:
<?php
echo "<table border = 1>";

function make_column(){ 
 echo "<td>", "тест", "</td>"; 
}

function make_line(){ 
 echo "<tr>"; 
 for ($i = 0; $i < 7; $i++){ 
 echo make_column(); 
 } 
 echo "</tr>"; 
} 

for ($l = 0; $l < 5; $l++){ 
 echo make_line(); 
} 

echo "</table>"; 

?>
В результате получаем обычну таблицу. Как средствами РНР можно вывести стилизированную таблицу? Конечно есть решения с помощью Javascript-a, но интересно было бы попробовать с помощью РНР создать таблицу-зебру. Рад буду любым ссылкам, советам, коду. Заранее спасибо.
 

С.

Продвинутый новичок
PHP никаких таблиц не выводит. Он выводит только HTML текст.
 

Фанат

oncle terrible
Команда форума
что-то мне этот скрипт ни простеньким, ни эффективным не кажется.
для начала надо бы придумать реальную таблицу, которая выводит не бессмысленный тест, а реальные данные.
а потом уже - исходя из источника и характера данных писать эффективный и простой код.
 

vladislafus

Новичок

vladislafus

Новичок
что-то мне этот скрипт ни простеньким, ни эффективным не кажется.
для начала надо бы придумать реальную таблицу, которая выводит не бессмысленный тест, а реальные данные.
а потом уже - исходя из источника и характера данных писать эффективный и простой код.
Возьму на вооружение. В целом задача состоит в создании красивого web интерфейса базы данных.
 

С.

Продвинутый новичок
Это так. Но я говорю вам примерно о таком:
http://ptrofimov.wordpress.com/2011/04/23/ecstatictable-удобная-генерация-html-таблицы-на-осно/
сложновато (как для меня), но результат интересный.
Давайте не будем прыгать с вопроса на вопрос.
Как средствами РНР можно вывести стилизированную таблицу? ... было бы попробовать с помощью РНР создать таблицу-зебру.
Определаемся с вопросом: создать стилизованную таблицу-зебру-шмебру или сгенерировать таблицу из массива. Это две совершенно независимые темы. Решаем их по отдельности
 

vladislafus

Новичок
Давайте не будем прыгать с вопроса на вопрос.

Определаемся с вопросом: создать стилизованную таблицу-зебру-шмебру или сгенерировать таблицу из массива. Это две совершенно независимые темы. Решаем их по отдельности
Ок. Cгенерировать таблицу из массива (с хорошим стайлом, если можно).
 

vladislafus

Новичок
Давайте не будем прыгать с вопроса на вопрос.

Определаемся с вопросом: создать стилизованную таблицу-зебру-шмебру или сгенерировать таблицу из массива. Это две совершенно независимые темы. Решаем их по отдельности
Конечно пардонте за нечеткость поставленого вопроса в дальнейшем буду избегать подобной формулировки.
 

WMix

герр M:)ller
Партнер клуба
напиши в HTML то что хочешь, говорят тебе... таблицу любой сложности,... и я покажу магию как такой HTML генерить с помощью PHP
 

Фанат

oncle terrible
Команда форума
Но я говорю вам примерно о таком:
сложновато (как для меня), но результат интересный.
Жесть какая.
А станка с программным управлением для ковыряния в носу там нету?
Cгенерировать таблицу из массива
Массивы бывают разные. Давай пример массива.
И сразу попробуй сам таблицу и вывести.
с хорошим стайлом, если можно
Рекомендую прочесть самый первый ответ. Он гораздо глубже, чем кажется.

Если до сих пор непонятно:
РНР не генерит "стайлы". Он тупо выводит текст. Какой ему скажешь - такой и выведет. скажешь вывести стиль - выведет. Не скажешь - не выведет. Все в твоих руках.
Пробуй.
 

vladislafus

Новичок
напиши в HTML то что хочешь, говорят тебе... таблицу любой сложности,... и я покажу магию как такой HTML генерить с помощью PHP
Жесть какая.
А станка с программным управлением для ковыряния в носу там нету?

Массивы бывают разные. Давай пример массива.
И сразу попробуй сам таблицу и вывести.

Рекомендую прочесть самый первый ответ. Он гораздо глубже, чем кажется.

Если до сих пор непонятно:
РНР не генерит "стайлы". Он тупо выводит текст. Какой ему скажешь - такой и выведет. скажешь вывести стиль - выведет. Не скажешь - не выведет. Все в твоих руках.
Пробуй.
Пример массива:
PHP:
<?php
$users=array(
	"id"=>array(1, 2, 3, 4, 5),
	"name"=>array("Василий"=>"Брычкин", "Олег"=>"Михайлов", "Стас"=>"Потапов", "Оля"=>"Кудасова", "Ира"=>"Сергеева"),
	"access_rigths"=>("GRANT SELECT", "GRANT SELECT, UPDATE", "GRANT SELECT", "GRANT SELECT, UPDATE, DELETE", "GRANT SELECT, UPDATE, DELETE, ALTER")
);
?>
Вобщем табличка с тремя колонками: ID, Имя, Права доступа.
 

Semen

Семён
а может так лучше:
PHP:
$users = array(
    "id" => aaray( "name" => "...", "surname" => "...", "access_rigths" => "..." )
);
 

WMix

герр M:)ller
Партнер клуба
незнаю зачем я это написал

PHP:
echo '<table>';
foreach( $users["name"] as $k => $v ){ $i=!isset($i)?0:$i+1;
echo '<tr>';
echo '<td>'.$users["id"][$i].'</td>';
echo '<td>'.$k.', '.$v.'</td>';
echo '<td>'.$users["access_rigths"][$i].'</td>';
echo '</tr>';
}
echo '</table>';
но фиг уж с тобой

ты в курсе что в твоем масиве только один Василий может быть?
 

Фанат

oncle terrible
Команда форума
Мда, губа у тебя не дура. "тетенька, дайте попить, а то так есть хочется, что аж переночевать негде"
Тебе и многомерный уже, и повернуть на 90 градусов, и зебру.

В общем, так. Поскольку у тебя изначальной задачей была зебра, то давай-ка ты сам
1. сделаешь себе простой одномерный массив
2. напишешь код, который выводит его в виде простой одномерной таблицы.
3. возьмёшь полученный HTML
4. модифицируешь его так, чтобы получилась зебра.
5. внесёшь предложения по модификации РНР кода, которые помогли бы получить такой же результат.
Все полученные результаты постишь сюда.
 

vladislafus

Новичок
Мда, губа у тебя не дура. "тетенька, дайте попить, а то так есть хочется, что аж переночевать негде"
Тебе и многомерный уже, и повернуть на 90 градусов, и зебру.

В общем, так. Поскольку у тебя изначальной задачей была зебра, то давай-ка ты сам
1. сделаешь себе простой одномерный массив
2. напишешь код, который выводит его в виде простой одномерной таблицы.
3. возьмёшь полученный HTML
4. модифицируешь его так, чтобы получилась зебра.
5. внесёшь предложения по модификации РНР кода, которые помогли бы получить такой же результат.
Все полученные результаты постишь сюда.
Итого:


PHP:
<?php
$names[1][0] = "Украина";
$names[1][1]= "РФ";
$names[1][2]= "Германия";
$names[1][3]= "Польша";
$names[2][0] = "Киев";
$names[2][1]= "Москва";
$names[2][2]= "Берлин";
$names[2][3]= "Варшава";

	
echo "<table class=\"datatable\">";
echo "<tr> <th> Страны </th> <th> Столицы</th></tr>";
for ($q=0; $q< 4; $q++) {
echo "<tr> <td>".$names[1][$q]."</td>
<td>".$names[2][$q]."</td>
</tr>";
}

echo "</table>";
?>
Файлы js, css добавлены.
Предложения, замечания.
 

Вложения

  • 757 байт Просмотры: 9
  • 145 байт Просмотры: 8

Фанат

oncle terrible
Команда форума
это двумерный массив. а нужен одномерный. таблица в одну колонку.
предложения по раскраске жс-ом неинтересны.
 

WMix

герр M:)ller
Партнер клуба
vladislafus ужасное представление данных, зачем ты так закручиваешь?
читай что Semen написал
PHP:
$names = array(
  array('country' => "Украина", 'capital' => "Киев"),
  array('country' => "РФ", 'capital' => "Москва")
)
так даже по данным понятно что к чему! и в базах они лежат кстати также!
и разворачиваются без особой логики! без дополнительного счетчика, на любую длину масива
PHP:
echo '<table class="datatable">';
echo '<tr> <th> Страны </th> <th> Столицы</th></tr>';
foreach($names as $q){
  echo '<tr><td>'.$q['country'].'</td><td>'.$q['capital'].'</td></tr>';
}
echo '</table>';
1. сделаешь себе простой одномерный массив
это ты поиппал!
 
Сверху