Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.08.2010, 13:09   #1
maksikus
Пользователь
 
Регистрация: 05.12.2009
Сообщений: 51
По умолчанию Верстка таблицы

Необходимо создать таблицу на .php с выводом данных из БД mysql.
Сначала расскажу о составляющих:
Вот часть данных из БД:
столбец 1 = `1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`
столбец 2 = `0`,`0`,`0`,`0`,`5`,`5`,`5`,`5`,`5`
столбец 3 = `секунда`,`секунда`,`секунда`,`секу нда`, `минута`, `минута`, `минута`, `минута`, `минута`
столбец 4 = `интервал`,`параметр`,`опция`,`прим ер`,`градация`,`метод`,`возможность `,`вариации`,`примечание`

Необходимо чтоб данные из БД выводились ввиде таблицы такого плана:
Код:
__________________ 
|1|2|     3     |      4     | 
|_|_|______|_______| 
|1| |            |интервал| 
|_| |            |________| 
|2| |            |параметр| 
|_| |            |________| 
|3|0|секунда|  опция   | 
|_| |            |________| 
|4| |            | пример  | 
|_|_|______|________|
Данные должны выводится так: в первом столбце выводится как есть `1`,`2`,`3`,`4` если в столбце 1 значение от `1` до `4`, то в столбце 2 значение будет равно `0`, и еще в таблице 3 = `секунда`, столбец 4 выводит данные как есть = `интервал`,`параметр`,`опция`,`прим ер`(как и в первом столбце), тоже самое и с продолжением вывода данных `5`,`6`,`7`,`8`,`9`, если в столбце 1 значение от `5` до `9`, то в столбце 2 значение будет равно `5`, и т.д.

В этом примере у меня выводит все данные из таблицы:

PHP код:
<table border=1 bordercolor="Blue" width=100%> 
//название столбцов 
<tr> 
<td bgcolor="#CCFF00" width=60><center><font color=red><b>1</b></center></td> 
<td bgcolor="#CCFF00" width=60><center><font color=red><b>2</b></center></td> 
<td bgcolor="#CCFF00" width=60><center><font color=red><b>3</b></center></td> 
<td bgcolor="#CCFF00" width=60><center><font color=red><b>4</b></center></td> 
</tr> 
  
<? 
include "conf.php"
  
$data mysql_connect($base_name$base_user$base_pass); 
mysql_select_db($db_name,$data); 
  
$seek=mysql_query("SELECT * FROM opit"); 
while(
$row=mysql_fetch_array($seek)){ 
  
$
$row["1"]; 
$
$row["2"]; 
$
$row["3"]; 
$
$row["4"]; 
  
?> 
//вывод информации из бд 
 <tr> 
<td bgcolor="#3399CC" width=60><center><? echo $1 ?></center></td> 
<td bgcolor="#3399CC" width=60><center><? echo $2 ?></center></td> 
<td bgcolor="#3399CC" width=60><center><? echo $3 ?></center></td> 
<td bgcolor="#3399CC" width=60><center><? echo $4 ?></center></td> 
 </tr> 
<? 

?> 
</table>
Уже второй день бьюсь, помогите пожалуйста.

Последний раз редактировалось maksikus; 25.08.2010 в 13:16.
maksikus вне форума Ответить с цитированием
Старый 25.08.2010, 13:45   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Уже второй день бьюсь, помогите пожалуйста.
Хоть это и очевидно - но желательно указывать что конкретно не получается и какие ошибки выдаёт интерпретатор PHP - т.к. ясновидящих тут почти нет,а зная ошибку - проще её найти.

1. Имена переменных в PHP должны начинаться с буквы,или символа подчёркивания (_) - так что ваши $1,$2,$3,$4 - не корректны.

2.Непонятно,что вам нужно:
Цитата:
Данные должны выводится так: в первом столбце выводится как есть `1`,`2`,`3`,`4` если в столбце 1 значение от `1` до `4`, то в столбце 2 значение будет равно `0`, и еще в таблице 3 = `секунда`, столбец 4 выводит данные как есть = `интервал`,`параметр`,`опция`,`прим ер`(как и в первом столбце), тоже самое и с продолжением вывода данных `5`,`6`,`7`,`8`,`9`, если в столбце 1 значение от `5` до `9`, то в столбце 2 значение будет равно `5`, и т.д.
- вы просто имеете ввиду,что данные выводятся из таблицы как есть,или же вам нужно,чтобы независимо от значений в столбцах 2 и 3 - в таблице выводились указанные вами значения(непонятно,потому что во многом желаемые вами значения идентичны указанным в БД).
Andkorol вне форума Ответить с цитированием
Старый 25.08.2010, 13:48   #3
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

И совет на будущее - не ленитесь давать переменным и столбцам в таблицах БД осмысленные,значимые имена - потому что ваши 1,2,3,4 - это капец...
Об этом вас(начинающих разработчиков) умоляют в каждой книге по любому языку программирования.
Ну вы ж не индусы,в конце концов...
Andkorol вне форума Ответить с цитированием
Старый 25.08.2010, 14:14   #4
maksikus
Пользователь
 
Регистрация: 05.12.2009
Сообщений: 51
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Хоть это и очевидно - но желательно указывать что конкретно не получается и какие ошибки выдаёт интерпретатор PHP - т.к. ясновидящих тут почти нет,а зная ошибку - проще её найти.
В том скрипте что я написал ошибок никаких нет.

Цитата:
Сообщение от Andkorol Посмотреть сообщение
1. Имена переменных в PHP должны начинаться с буквы,или символа подчёркивания (_) - так что ваши $1,$2,$3,$4 - не корректны.
Почему не коректны? данный пример можете сами проверить, он исправно работает, данные из базы выводятся как есть.

Цитата:
Сообщение от Andkorol Посмотреть сообщение
2.Непонятно,что вам нужно: - вы просто имеете ввиду,что данные выводятся из таблицы как есть,или же вам нужно,чтобы независимо от значений в столбцах 2 и 3 - в таблице выводились указанные вами значения(непонятно,потому что во многом желаемые вами значения идентичны указанным в БД).
Если вас не устраивают цифры предоставлю другой более удобный пример:

Вот часть дампа данных таблицы `opit`

INSERT INTO `opit` (`ap`, `vl`, `pit`, `at`, `at_sum`, `nav`, `nav_sum`, `mon`, `mon_sum`, `pit_sum`, `status`, `osoben`) VALUES
('1', '0', '5', '10', '10', '10', '10', '0', '0', '0', 'Интерпритация', '-'),
('2', '0', '5', '1', '11', '1', '11', '0', '0', '20', 'Интерпритация', '-'),
('3', '0', '5', '1', '12', '1', '12', '1', '1', '40', 'Интерпритация', '-'),
('4', '0', '5', '1', '13', '2', '14', '3', '4', '70', 'Интерпритация', '-'),
('5', '1', '10', '3', '16', '3', '17', '5', '9', '100', 'Возможность', 'Цель'),
('6', '1', '10', '1', '17', '1', '18', '1', '10', '140', 'Возможность', 'Цель'),
('7', '1', '10', '1', '18', '2', '20', '1', '11', '190', 'Возможность', 'Цель'),
('8', '1', '10', '1', '19', '2', '22', '4', '15', '250', 'Возможность', 'Цель'),
('9', '1', '10', '1', '20', '3', '25', '7', '22', '320', 'Возможность', 'Цель'),

Теперь это надо перевести в таблицу, как перевести:
В первом столбце (`ap`) выводится как есть `1`,`2`,`3`,`4` если в столбце `ap` значение от `1` до `4`, то в столбце vl значение будет равно `0`, и еще в таблице pit = `5`... столбец at_sum выводит данные как есть и т.д.
Выше я наглядный пример как выглядет таблица предоставил.
maksikus вне форума Ответить с цитированием
Старый 25.08.2010, 14:37   #5
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
В том скрипте что я написал ошибок никаких нет.
Над чем тогда вы второй день бьётесь???

Цитата:
если в столбце `ap` значение от `1` до `4`, то в столбце vl значение будет равно `0`, и еще в таблице pit = `5`
- теперь смотрим ваш дамп:
Цитата:
('1', '0', '5', '10', '10', '10', '10', '0', '0', '0', 'Интерпритация', '-'),
('2', '0', '5', '1', '11', '1', '11', '0', '0', '20', 'Интерпритация', '-'),
('3', '0', '5', '1', '12', '1', '12', '1', '1', '40', 'Интерпритация', '-'),
('4', '0', '5', '1', '13', '2', '14', '3', '4', '70', 'Интерпритация', '-'),
- что не так?Чем не устраивает прямой вывод данных из Базы?

Цитата:
Почему не коректны?
Поверьте - придумал не я:
Цитата:
A valid variable name starts with a letter or underscore, followed by any number of letters, numbers, or underscores.
Пруф

Цитата:
Если вас не устраивают цифры предоставлю другой более удобный пример
Старайтесь сразу делать более удобно - сами себе потом спасибо скажете.
Потому что вот вы напишете скрипт,проходит много времени(скрипт ваш работает,а вы - может уже и не программируете вовсе,а,например,мороженное детям продаёте) - а вам всё это время шлют лучи ненависти вот за такие вот имена переменных и столбцов те программисты,которые после вас сопровождают/дорабатывают/расширяют ваш код...
Ну это я образно,конечно...
Просто когда-нибудь вам самому прийдётся дорабатывать/переделывать чужой код - и вот когда вы там увидите сплошные $1,$2,...,$n-имена - вот тогда вы и поймёте,о чём я вам сейчас говорю.
Andkorol вне форума Ответить с цитированием
Старый 25.08.2010, 14:45   #6
maksikus
Пользователь
 
Регистрация: 05.12.2009
Сообщений: 51
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Над чем тогда вы второй день бьётесь???
Над тем чтобы значения 0,5,интерпретация, в таблице не повторялись а выводились одной строкой в колонке.

Цитата:
Сообщение от Andkorol Посмотреть сообщение
- теперь смотрим ваш дамп:
- что не так?Чем не устраивает прямой вывод данных из Базы?
Чтобы выглядело красиов и удобно.

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Поверьте - придумал не я:Пруф
Старайтесь сразу делать более удобно - сами себе потом спасибо скажете.
Потому что вот вы напишете скрипт,проходит много времени(скрипт ваш работает,а вы - может уже и не программируете вовсе,а,например,мороженное детям продаёте) - а вам всё это время шлют лучи ненависти вот за такие вот имена переменных и столбцов те программисты,которые после вас сопровождают/дорабатывают/расширяют ваш код...
Ну это я образно,конечно...
Просто когда-нибудь вам самому прийдётся дорабатывать/переделывать чужой код - и вот когда вы там увидите сплошные $1,$2,...,$n-имена - вот тогда вы и поймёте,о чём я вам сейчас говорю.
Учту ваши пожелания! Так что по таблице?
maksikus вне форума Ответить с цитированием
Старый 25.08.2010, 15:01   #7
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Я всё-таки уточню - правильно ли я понял?
Вы хотите,чтобы повторяющиеся значения в столбцах `vl` и `pit` выводились один раз в колонке таблицы,а не в каждой строке?

По этому поводу вопрос - насколько динамичны эти данные - я имею ввиду,например, что данные в `vl` одинаковы для 4-х позиций,а в `pit` - разные для тех же позиций - может такое быть?
Andkorol вне форума Ответить с цитированием
Старый 25.08.2010, 15:14   #8
maksikus
Пользователь
 
Регистрация: 05.12.2009
Сообщений: 51
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Я всё-таки уточню - правильно ли я понял?
Вы хотите,чтобы повторяющиеся значения в столбцах `vl` и `pit` выводились один раз в колонке таблицы,а не в каждой строке?

По этому поводу вопрос - насколько динамичны эти данные - я имею ввиду,например, что данные в `vl` одинаковы для 4-х позиций,а в `pit` - разные для тех же позиций - может такое быть?
Данные в `vl`, `pit`, `status`, `osoben` одинаковы по количеству строк, только в повторяющихся данных может добавится строки, как в примере дампа, в этих четырех столбцах добавилось по одной строке, т.е. в дальнейшем они будут еще добавляться на 1 а может и на 3, но у всех 4-х столбцах количество строк будет неизменным, как и содержимое повторяющегося текста.
maksikus вне форума Ответить с цитированием
Старый 25.08.2010, 15:35   #9
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Данные в `vl`, `pit`, `status`, `osoben` одинаковы по количеству строк, только в повторяющихся данных может добавится строки, как в примере дампа, в этих четырех столбцах добавилось по одной строке, т.е. в дальнейшем они будут еще добавляться на 1 а может и на 3, но у всех 4-х столбцах количество строк будет неизменным, как и содержимое повторяющегося текста.
Я ,правда, ничё не понял тут...
Я вам задал простой вопрос:
Может ли быть так,что в `vl` для 4-х(5-ти,10-ти,128-ми, ...) позиций(записей в БД) будут одинаковые значения,и в то же время в `pit` для этих же 4-х(5-ти,10-ти,128-ми, ...) позиций(записей в БД) будут разные значения?

Пример:
Цитата:
('1', '0', '5', '10', '10', '10', '10', '0', '0', '0', 'Интерпритация', '-'),
('2', '0', '7', '1', '11', '1', '11', '0', '0', '20', 'Интерпритация', '-'),
('3', '0', '5', '1', '12', '1', '12', '1', '1', '40', 'Интерпритация', '-'),
('4', '0', '9', '1', '13', '2', '14', '3', '4', '70', 'Интерпритация', '-'),
('5', '0', '3', '10', '10', '10', '10', '0', '0', '0', 'Интерпритация', '-'),
('6', '0', '5', '1', '11', '1', '11', '0', '0', '20', 'Интерпритация', '-'),
('7', '0', '5', '1', '12', '1', '12', '1', '1', '40', 'Интерпритация', '-'),
('n', '0', '4', '1', '13', '2', '14', '3', '4', '70', 'Интерпритация', '-'),
- такой вариант возможен?

Или же раз значения `vl` одинаковы в нескольких записях(напр. 0) - то обязательно и значения `pit` в этих записях одинаковы(напр. 5)?

Я почему спрашиваю - если одинаковые значения для `vl` подразумевают одинаковые же значения для `pit` - тогда проверку идентичности достаточно проводить по одному полю (`vl` например),и таблицу будет построить непросто,но можно.
Если же значения в `pit` могут быть разными для записей с одинаковым `vl`,то построить такую таблицу будет ГОРАЗДО сложнее(и не факт что получится,ибо нужно будет ловить эти "перекосы" по rowspan) - при этом сразу скажу,что врядли "красиво и удобно" будут того стОить.
Andkorol вне форума Ответить с цитированием
Старый 25.08.2010, 16:29   #10
maksikus
Пользователь
 
Регистрация: 05.12.2009
Сообщений: 51
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Я ,правда, ничё не понял тут...
Я вам задал простой вопрос:
Может ли быть так,что в `vl` для 4-х(5-ти,10-ти,128-ми, ...) позиций(записей в БД) будут одинаковые значения,и в то же время в `pit` для этих же 4-х(5-ти,10-ти,128-ми, ...) позиций(записей в БД) будут разные значения?

Пример:
- такой вариант возможен?

Или же раз значения `vl` одинаковы в нескольких записях(напр. 0) - то обязательно и значения `pit` в этих записях одинаковы(напр. 5)?

Я почему спрашиваю - если одинаковые значения для `vl` подразумевают одинаковые же значения для `pit` - тогда проверку идентичности достаточно проводить по одному полю (`vl` например),и таблицу будет построить непросто,но можно.
Если же значения в `pit` могут быть разными для записей с одинаковым `vl`,то построить такую таблицу будет ГОРАЗДО сложнее(и не факт что получится,ибо нужно будет ловить эти "перекосы" по rowspan) - при этом сразу скажу,что врядли "красиво и удобно" будут того стОить.
В принципе я так и написал. В `vl` и `pit` значения разными быть не могут, т.е. в `vl` обязательно значения будут равняться 0, а в `pit`= 5 с одинаковым количеством строк, может меняться только количество строк, но опять же пропорционально в обоих столбцах.
maksikus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Слетает верстка... lastalert HTML и CSS 6 02.05.2010 17:14
Верстка DIVами Denisovvsh HTML и CSS 4 09.03.2010 21:32
верстка NecRoMat HTML и CSS 5 02.10.2008 01:03
Блочная верстка Demonichka HTML и CSS 2 12.07.2008 01:31