Вывод данных в ячейку таблицы, где пересекаются столбец и строка

dimagolov

Новичок
kaant, ну почитай ты про массивы вообще и многомерные в частности мане. оператор [] ты вообще видел в жизни????
 

dimagolov

Новичок
нет. тебе надо $date и $time сделать КЛЮЧАМИ многомерного массива. и обращаться через массив $massiv
 

kaant

Новичок
а, вон как! ну теперь понял.

-~{}~ 15.04.08 20:17:

PHP:
$massiv = array();
$massiv[$date][$time] = $value;
теперь нужно использовать цикл для множественного вывода данных, да? какой лучше использовать?
 

dimagolov

Новичок
kaant, почти так. но $massiv[$date] у тебя не массив ведь в начале? то есть надо
1. проверить существует ли $massiv[$date], если нет - создать
2. присвоить значение $massiv[$date][$time]

ты в цикле будешь получать построчно данные из базы, там у тебя все $date, $time, $value будут присутствовать. ну и соответственно заполнять ими $massiv
 

kaant

Новичок
вот так?
PHP:
if(!isset($massiv[$data]))
   {
    $massiv = array();
	$massiv[$data][$vremya] = "занято!";
   }
 

dimagolov

Новичок
молодец, прогресс на лицо. :)
только добавлять значение тебе надо всегда, а не только тогда, когда массив не определен
 

kaant

Новичок
ага, т.е. добавить еще
PHP:
else {$massiv[$data][$vremya] = "занято!";}
-~{}~ 15.04.08 22:03:

ок, а какой цикл использовать? while или foreach?
 

dimagolov

Новичок
цикл тот, который удобней. почитай внимательно чем отличаются и в чем особенности. кстати, у тебя их то не один должен быть - первый из базы получает значения и строит $massiv, а второй (скорее всего пара вложенных) выводит html таблицы.

а про else скажи, зачем у тебя и в if и в else блоках одинаковая строчка?
 

kaant

Новичок
Автор оригинала: dimagolov а про else скажи, зачем у тебя и в if и в else блоках одинаковая строчка?
видать не правильно понял фразу "только добавлять значение тебе надо всегда, а не только тогда, когда массив не определен" )

-~{}~ 15.04.08 22:38:

а условия в циклах какие задавать?
 

Alkinoy

Начинающий
совет автору. пишите сначала алгоритмя ручкой на бумаге СЛОВАМИ. ну или блоксхемой. тока не надо сразу писать код. И вот когда на бумаге словами будет четко работающий алгоритм - тогда начинайте кодить.
 

dimagolov

Новичок
Alkinoy, при чем здесь это? человек вообще слабо понимает что такое алгоритм и что такое управляющие структуры да и в принципе, как видно из момента с if(!isset($massiv[$data])) с тем, как исполняется скрипт. поэтому объяснить ему как работает один оператор можно (что он и демонстрировал создавая массив одним оператором), в вот когда их больше одного и надо их соеденять уже проблемы получаются.
так что рисовать на бумаге можно до посинения, от этого "четко работающий алгоритм" не появиться, так ка что такое алгоритм понимания нету :(
 

dimagolov

Новичок
Alkinoy, для этого надо как минимум прочитать определение что такое алгоритм и понять его. потом читать какие бывают управляющие структуры и для чего они нужны. просто прочитать и понять пару-тройку экранов текста. википедия, кстати, рулит.

ах да... надо было математику в школе учить и там где теоремы доказывались понять основы логики.
 

Alkinoy

Начинающий
имхо - начинается непонятный треп про отсутствие знаний у человека. некоррекнто...
 

kaant

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

по сути, алгоритм моей задачки таков: если данные из БД совпадают с данными шапки таблицы, то на пересечинии соответствующей строки и столбца выводится слово, в противном случае выводится пустая ячейка.

-~{}~ 16.04.08 19:10:

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

цикл повторяет одно и тоже действие определенное колво раз. в зависимости от условия, данные после прохода одного цикла, могут меняться.
 

dimagolov

Новичок
kaant, твое объяснение по сути, алгоритм моей задачки таков: это не алгоритм, а ожидаемый результат. а алгоритм - это те действия, которые должен сделать скрипт для его достижения. вот пока ты хоть словами не объяснишь себе (ну и нам для проверки) какие действия для этого нужны, у тебя ничего и не выйдет.

hint: попробуй сверстать интересующую тебя html-таблицу вручную и попробуй подумать над тем, как и когда ты вставлял значения в ее ячейки. то есть так ты сам изобразишь из себя скрипт, и будешь действовать по алгоритму какому-то, а тебе надо будет повторить этот же алгоритм для скрипта.

Про массив. Смотри, ТУТ нет ни слова про область данных. Там говориться, что массив это упорядоченное отображение, которое устанавливает соответствие между значением и ключем.. Если тебе хоть одно из этих 9 слов непонятно, иди в википедию и читай, пока не будет понятно.
 

kaant

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