Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Оформление вывода информации из БД
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Оформление вывода информации из БД

Страниц (1): [1]
 

1. realovich - 20 Октября, 2007 - 10:10:47 - перейти к сообщению
Опишу ситуацию:
Есть таблица БД следующего вида:
date | name | category | subcategory
-------------------------------- -------------------------------- -------------------------------- -----------------
01.10.07 | Иванов И. | Дежурство на проходной | Дежурство на проходной. Ответственный (Утро)
01.10.07 | Сидоров С. | Дежурство на проходной | Дежурство на проходной. Помощник (Утро)
01.10.07 | Петров П. | Дежурство на проходной | Дежурство на проходной. Ответственный (Вечер)
01.10.07 | Максимов М. | Дежурство на проходной | Дежурство на проходной. Помощник (Вечер)


Каждой категории и подкатегории присвоен свой ID.
Информация средствами php попадает в календарь, в определённую ячейку дня недели, в данном случае 1 октября 2007 года. Календарь уже есть.
Нужно только оформить вид ячейки с информацией. Но выводить название категории или подкатегории не очень удобно, да и не нужно в некоторых случаях, так как название категории попадает в заголовок над календарём.
Нужно, чтобы в ячейке появлялась примерно следующая информация:

Утро (8:00 - 12:00)
Иванов И.
Сидоров С.
Вечер (13:00 - 17:00)
Петров П.
Максимов М.
Естественно первая фамилия сама по себе означает что это ответственный...

Помогите оформить такой вывод... Я новичок в php, поэтому сильно не бейте, если вопрос глупый. Очень надеюсь, что поможете...
Заранее благодарен!
2. -SCHATTEN- - 20 Октября, 2007 - 13:02:45 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. function SQLCheck($str) {
  3.  
  4.         if ( get_magic_quotes_gpc() ) {
  5.                 $var = stripslashes( $var );
  6.         }      
  7. }
  8.  
  9. $dcx = mysql_connect("hostname", "username", "password");   //Подключаемся к БД
  10. $cnx = mysql_select_db("database", $dcx);   //Выбираем таблицу из БД
  11.  
  12. $query = "SELECT c.*, e.path AS photo_path, e.name AS photo_name FROM table1 AS c
  13.      LEFT JOIN table2 AS e ON c.id = e.cid
  14.      WHERE 1
  15.      ORDER BY date";
  16. $query = SQLCheck($query);
  17. if ($sql = mysql_query($query)) {
  18.  
  19.         while ($vars = mysql_fetch_object($sql)) {
  20.                 //Вывод того что нужно.
  21.         }
  22.        
  23. } else {
  24.         exit(mysql_error());
  25. }
  26.  


Примерно так, но тут слишком мало инфы чтобы тебе написать, давай подробнее в каких таблицах что хранится и какие где id.
3. realovich - 22 Октября, 2007 - 07:10:14 - перейти к сообщению
Вывести инфу у меня получилось, но вот чтобы она была в описанном мною виде была, для меня это не достижимо...
Все равно спасибо за участие!
4. -SCHATTEN- - 22 Октября, 2007 - 07:23:05 - перейти к сообщению
ты приведи хотябы 2 примера со всеми `id` мы тебе выведем всё что надо, ато вслепую писать сложно.
5. realovich - 22 Октября, 2007 - 18:20:15 - перейти к сообщению
-SCHATTEN- пишет:
ты приведи хотябы 2 примера со всеми `id` мы тебе выведем всё что надо, ато вслепую писать сложно.

date........| name...............| category........................ .... | category_id | subcategory ............................................................................| subcategory_id |
-------------------------------- -------------------------------- -------------------------------- -------------------------------- ----------------------------
01.10.07 | Иванов И. ......| Дежурство на проходной | 1.............. |Дежурство на проходной. Ответственный (Утро) ....| 1
01.10.07 | Сидоров С. ...| Дежурство на проходной | 1............... | Дежурство на проходной. Помощник (Утро)............ | 2
01.10.07 | Петров П. ......| Дежурство на проходной | 1............... | Дежурство на проходной. Ответственный (Вечер) | 3
01.10.07 | Максимов М. .| Дежурство на проходной | 1............... | Дежурство на проходной. Помощник (Вечер).......... | 4
6. evgenijj - 23 Октября, 2007 - 09:52:51 - перейти к сообщению
Как-то странно ты решаешь задачу. Здесь в общем-то три таблицы:
onduty
PHP:
скопировать код в буфер обмена
  1.  
  2. date     | name           | category_id | subcategory_id
  3. --------------------------------------------------------
  4. 01.10.07 | Иванов И.      | 1           | 1
  5. 01.10.07 | Сидоров С.     | 1           | 2
  6. 01.10.07 | Петров П.      | 1           | 3
  7. 01.10.07 | Максимов М.    | 1           | 4
  8. 02.10.07 | Иванов И.      | 2           | 1
  9. 02.10.07 | Сидоров С.     | 2           | 2
  10. 02.10.07 | Петров П.      | 2           | 3
  11. 02.10.07 | Максимов М.    | 2           | 4
  12.  

categories
PHP:
скопировать код в буфер обмена
  1.  
  2. category_id | name
  3. ------------------------------------
  4. 1           | Дежурство на проходной
  5. 2           | Дежурство на кухне
  6. 3           | Дежурство еще где-то
  7.  

subcategories
PHP:
скопировать код в буфер обмена
  1.  
  2. subcategory_id | name
  3. -------------------------------------
  4. 1              | Ответственный (Утро)
  5. 2              | Помощник (Утро)
  6. 3              | Ответственный (Вечер)
  7. 4              | Помощник (Вечер)
  8.  


Кто дежурит на кухне 02.10.07?
SELECT name FROM onduty WHERE date='02.10.07' AND category_id=2
Кто дежурит на проходной вечером 01.10.07?
SELECT name FROM onduty WHERE date='01.10.07' AND category_id=1 AND subcategory_id IN (3, 4);
Кто помошник дежурного по кухне 01.10.07?
SELECT name FROM onduty WHERE date='01.10.07' AND category_id=2 AND subcategory_id=4

 

Powered by ExBB FM 1.0 RC1