2014-12-20 4 views
-1

Я знаю достаточно о PHP и HTML, чтобы у меня были проблемы. Я пытаюсь построить отчет с событиями в 4 разных местах в течение дня. Таким образом, в 7:10 на одном объекте могла быть тревога в течение 3 минут, а в 7:12 могла быть одна в течение 7 минут на другой. У каждого объекта будет своя колонка. Таким образом, 4 столбца в поперечнике, а события в каждом столбце выравниваются до соответствующих позиций на временной шкале по вертикали.Таблица HTML, показывающая дни с различными событиями

Возможно, я, наверное, думал об этом, но я никуда не уйду. Будет ли каждый столбец разбит на 86400 единиц с 3-минутным событием, охватывающим 180 строк?

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

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

+2

(1) Что такое ваш вопрос? (2) Не храните события в столбцах, сохраняйте их в строках. (3) Покажите некоторые данные образца. –

+0

Я могу, конечно, опубликовать код, с которым я играл, но это беспорядок, и он ничего не делает, кроме как тратить ваше время на чтение, не обращая внимания. Моя проблема связана с элементами, расположенными в столбцах по всей сетке. Например. 7:10 в одной колонке, 7:10 в другой и 7:12 в третьем. –

+0

См. Нормализацию. Таблица базы данных НЕ является таблицей! – Strawberry

ответ

1

Вы можете использовать Wrapper Div и for each строку (если вставить данные в виде строк), вы можете создать inner Div с margin-left стиле, как это: первый CSS-стиль для Div сек

.wrapper { 
    position:relative; 
} 
.inner-div { 
    position:absolute; 
} 

прямо сейчас коды php и HTML, которые создают диаграмму сегодняшних событий, предполагая, что вы храните события в строках и имеете активное соединение mysqli с php по $link:

<div class="wrapper"> 
<?php 
$today = mktime(0, 0, 0); //get today's timestamp 
$query="SELECT * FROM Table_name WHERE event_time_stamp > " $today; //a query that gets today's events 
$result = mysqli_query($link,$query); 
while($row=mysqli_fetch_assoc($result)){ //get each row 
    $margin=$row['event_time_stamp']-$today; //minus today's first second time stamp from event timestamp to calculate the distance of event from start time of each day 
    echo '<div class="inner-divs" style="margin-left:'.$margin.'px;">'; 
    echo 'Sample Text of your Event data'; 
    echo '</div>'; 
} 
?> 
</div> 
+0

, объяснив, что ваша структура базы данных будет полезна – NimaNr

+0

Не совсем, нет. Он спрашивает, как отображать данные, а не как структурировать свою базу данных. Кроме того, он уже объяснил, какова его базовая настройка Db: Информация находится в таблице MYSQL с датой, местом, событием для простоты и я генерирую один день за раз ». – Marventus

+0

Позиционирование действительно помогло мне добраться туда, где я нужно было идти, и примерно в 1000 меньше строк кода. Спасибо. –

-1

Ваш подход кажется очень сложным и, основываясь на информации, предоставленной вами, является ненужным. Почему бы не разбивать каждый день на 24 основных строки, соответствующих каждому часу дня, а затем показывать все события, произошедшие в течение этого часа, отсортированные по возрастанию в зависимости от времени начала? Каждое событие может также содержать дополнительную информацию, такую ​​как продолжительность и т.д.

Что-то вроде этого, может быть:

enter image description here

+0

НЕ ДЕЛАЙТЕ! – Strawberry

+0

Уверен ... Имеет смысл. – Marventus

+0

Вот где я и возглавлял, но в итоге я разбил день на 86400 строки, основанные на секундах, проверяли каждое место на секунду, а также продолжительность, которую я использовал в качестве значения rowspan для таблицы. Если в каждой строке не было ничего по всем свойствам, я просто не печатал строку Он работал, но он кажется очень запутанным и беспорядочным. –

Смежные вопросы