Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Алгоритм создания таблиц результатов 
V
    Опции темы
Guedda
Дата 4.9.2007, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 13
Всего: 78



В общем, ситуация следующая:
Есть массив 
Код

$massiv = array('first','second','third'); // Элементов может быть много

Элементов может быть несколько. Так вот мне необходимо сделать так, чтобы все элементы были и заголовками столбцов, и заголовками строк, т.е. приблизительно так, как показано на рисунке:
user posted image

Помогите разобраться. Уже всю голову сломал. Парюсь очень.

Заранее благодарен.

Это сообщение отредактировал(а) Guedda - 4.9.2007, 12:26


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
console
Дата 4.9.2007, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 307
Регистрация: 12.2.2007
Где: Belarus::Minsk

Репутация: 2
Всего: 3



Генерировать двумерный массив надо


--------------------
user posted image
Nothing is impossible
My WeBlog
PM MAIL WWW ICQ   Вверх
Guedda
Дата 4.9.2007, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 13
Всего: 78



 smile 


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
sTa1kEr
Дата 4.9.2007, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



Guedda, сделать 3 цикла, один для хидеров, второй со вложеным циклом для строк и ячеек с данными
Код

$massiv = array('first','second','third', 'some else', 'five', 'more', 'again'); // Элементов может быть много

$table = <<< EOF
<table border="1">
<tr>
<th><!-- Empty cell -->\xA0</th>\n
EOF;
foreach($massiv as $header)
{
   $table .= "<th>$header</th>\n";
}

$table .= "</tr>\n";

foreach($massiv as $row)
{
   $table .= "<tr>\n";
   $table .= "<th>$row</th>\n";
   foreach($massiv as $col)
   {
      $table .= "<td><!-- Some data for cell $row/$col -->\xA0</td>\n";
   }
   $table .= "</tr>\n";
}
$table .= "</table>";
echo $table;

PM MAIL   Вверх
SelenIT
Дата 4.9.2007, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



Имхо, если без двумерного массива - то в простейшем случае - как-то так:
Код

<table>
<?
// вывод заголовка
echo '<tr><td></td><td>'.implode('</td><td>',$massiv).'</td></tr>';
// вывод строк
foreach ($massiv as $rowEement) {
   // вывод первой ячейки с названием элемента
   echo '<tr><td>'.$rowEement.'</td>';
   foreach ($massiv as $colEement) {
      // тут вычисляется сам результат
      $result = calculateResult($rowEement, $colEement); // для примера
      echo '<td>'.$result.'</td>';
   }
   echo '</tr>';
}
?>
</table>

upd. пока набирал - sTa1kEr опередил практически с тем же;)

Для более детального ответа хорошо бы узнать, как эти результаты хранятся...

Это сообщение отредактировал(а) SelenIT - 4.9.2007, 13:27


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
BuShaRt
Дата 4.9.2007, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



Код

<?php
include_once ("mysql.php"); $db=new DB ();
$db->query('DROP TABLE `test`');
$massiv = array('first','second','third');
$greate_table_query = "CREATE table `test` (id VARCHAR (255) NOT NULL, ";
for ($i=0; $i < count($massiv); $i++) {
    if ($i+1==count($massiv)) {
           $greate_table_query .= " `".$massiv[$i]."`  VARCHAR (255) NOT NULL";
            break;
    }
        $greate_table_query .= " `".$massiv[$i]."`  VARCHAR (255) NOT NULL, ";
}
$greate_table_query .= ")";
$db->query($greate_table_query);
foreach ($massiv as $val) {
    $db->query("INSERT INTO `test` (`id`) VALUES ('".$val."')");
}
?>


Вот, набросал на обеденном перерыве smile
Может можно и проще, но это первое, что пришло в голову smile
PM MAIL   Вверх
sTa1kEr
Дата 4.9.2007, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 56
Всего: 146



SelenIT, забавно, мы одновременно практически одинаковые примеры привели smile
PM MAIL   Вверх
BuShaRt
Дата 4.9.2007, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



sTa1kEr, 
-) Просто интересная задачка, креативная ;)
PM MAIL   Вверх
Guedda
Дата 4.9.2007, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 13
Всего: 78



Спасибо всем, воспользовался вариантом sTa1kEr. Но плюсы ставлю всем за участие ;)


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1561 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.