2015-04-15 3 views
1

В другом вопросе я спросил, как разработать для конкретного запроса пользовательской базы данных, база данных теперь в комплекте с data-PHP страница, которая возвращает данные в базе данных MYSQL

Итак, теперь я пытаюсь разработать простая страница php, проблема в том, что я не знаю, как правильно отображать некоторые данные.

Теперь у меня есть структура, представляющая список рабочих смен.

Каждый день делится на четыре части:

Night (24,00 - 8:00)

утро (08.00 - 14,00)

Во второй половине дня (14,00 - 20,00)

вечер (20.00 - 24.00)

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

Например:

день: 13/04/15

Ночь: Лицо а, б Человек, Человек с

Утром: Человек д, е Лицо, Лицо е

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

Я бы показал такую ​​страницу: enter image description here

На самом деле я написал этот код, который возвращает (очевидно) сдвиги в определенной дате:

<?php 

mysql_set_charset('utf8'); 
date_default_timezone_set('Europe/Rome'); 
$today_is = date("Y-m-d");  



    $listaN = array(); 

    $queryN = "SELECT cognome, ruolo, orario, data FROM Composto, Militi, Turni WHERE (Composto.id_milite = Militi.id_milite AND Composto.id_turno = Turni.id_turno AND orario =\"Notte\" AND data = \"2015-04-26\")"; 

    $result = mysql_query($queryN); 
    $num = mysql_num_rows($result);  
    if ($num != 0) { 

    while ($row = mysql_fetch_assoc($result)) { 
    array_push($listaN, $row); 
    } 
    } 

$autista = ""; 
$milite = ""; 
$tirocinante = ""; 

foreach($listaN as $i){ 
$giorno = $i['data']; 
if ($i['ruolo'] == "Autista"){ 
    $autista= $i['cognome']; 

}else if($i['ruolo'] == "Milite"){ 
$milite= $i['cognome']; 

}else{ 
$tirocinante= $i['cognome']; 
} 
    } 

    print(" 
    <table border=\"1\"> 
     <tr> 
     <td rowspan=\"6\"> 
     ".$giorno." 
     </td> 
     <td> 
     Orario 
     </td> 
     <td> 
     Autista 
     </td> 
     <td> 
     Milite 
     </td> 
     <td> 
     Tirocinante 
     </td> 
     </tr> 
     <tr> 
     <td> 
     00.00 - 08.00 
     </td> 
     <td> 
     ".$autista." 
     </td> 
     <td> 
     ".$milite." 
     </td> 
     <td> 
     ".$tirocinante." 
     </td>    
     </tr> 
     "); 


    $listaM = array(); 

    $queryM = "SELECT cognome, ruolo, orario,data FROM Composto, Militi, Turni WHERE (Composto.id_milite = Militi.id_milite AND Composto.id_turno = Turni.id_turno AND orario =\"Mattino\"AND data = \"2015-04-26\")"; 

    $result = mysql_query($queryM); 

    $num = mysql_num_rows($result); 

    if ($num != 0) { 

    while ($row = mysql_fetch_assoc($result)) { 
    array_push($listaM, $row); 
    } 
    } 

$autista = ""; 
$milite = ""; 
$tirocinante = ""; 


foreach($listaM as $i){ 

if ($i['ruolo'] == "Autista"){ 
    $autista= $i['cognome']; 

}else if($i['ruolo'] == "Milite"){ 
$milite= $i['cognome']; 

}else{ 
$tirocinante= $i['cognome']; 
} 
    } 


    print(" 
     <tr> 
     <tr> 
     <td> 
     08.00 - 14.00 
     </td> 
     <td> 
     ".$autista." 
     </td> 
     <td> 
     ".$milite." 
     </td> 
     <td> 
     ".$tirocinante." 
     </td>    
     </tr> 
    "); 



    $listaP = array(); 

    $queryP = "SELECT cognome, ruolo, orario,data FROM Composto, Militi, Turni WHERE (Composto.id_milite = Militi.id_milite AND Composto.id_turno = Turni.id_turno AND orario =\"Pomeriggio\"AND data = \"2015-04-26\")"; 

    $result = mysql_query($queryP); 

    $num = mysql_num_rows($result); 

    if ($num != 0) { 

    while ($row = mysql_fetch_assoc($result)) { 
    array_push($listaP, $row); 
    } 
    } 

$autista = ""; 
$milite = ""; 
$tirocinante = ""; 


foreach($listaP as $i){ 

if ($i['ruolo'] == "Autista"){ 
    $autista= $i['cognome']; 

}else if($i['ruolo'] == "Milite"){ 
$milite= $i['cognome']; 

}else{ 
$tirocinante= $i['cognome']; 
} 
    } 


    print(" 
     <tr> 
     <td> 
     14.00 - 20.00 
     </td> 
     <td> 
     ".$autista." 
     </td> 
     <td> 
     ".$milite." 
     </td> 
     <td> 
     ".$tirocinante." 
     </td>    
     </tr> 
    "); 






    $listaS = array(); 

    $queryS = "SELECT cognome, ruolo, orario,data FROM Composto, Militi, Turni WHERE (Composto.id_milite = Militi.id_milite AND Composto.id_turno = Turni.id_turno AND orario =\"Sera\"AND data = \"2015-04-26\")"; 

    $result = mysql_query($queryS); 

    $num = mysql_num_rows($result); 

    if ($num != 0) { 

    while ($row = mysql_fetch_assoc($result)) { 
    array_push($listaS, $row); 
    } 
    } 

foreach($listaS as $i){ 

if ($i['ruolo'] == "Autista"){ 
    $autista= $i['cognome']; 

}else if($i['ruolo'] == "Milite"){ 
$milite= $i['cognome']; 

}else{ 
$tirocinante= $i['cognome']; 
} 
    } 


    print(" 
     <tr> 
     <td> 
     20.00 - 24.00 
     </td> 
     <td> 
     ".$autista." 
     </td> 
     <td> 
     ".$milite." 
     </td> 
     <td> 
     ".$tirocinante." 
     </td>    
     </tr> 
    "); 


?> 

Теперь вопрос: как я могу изменить этот код, и правильно возвращать данные? Мне нужна отдельная страница, которая содержит представление обо всех сменах работы текущей недели с понедельника по воскресенье.

Я бы хотел это возможность увидеть также следующие недели, нажав на кнопку

*********** EDIT 1 *********** Фактически эта страница возвращает ТОЛЬКО данные в определенных данных, в этом случае 2015-04-26, что я хочу - это еженедельное представление, я не знаю, как я могу получить данные из db и представлять его ...

базы данных, как это:
List of entity

Detail of table "Composto"

Detail of "turni"

Detail of "Militi"

+0

«Как я могу изменить этот код и правильно вернуть данные?» - Что вы имеете в виду правильно? И с чем вы точно хотите помочь? Проектирование таблицы или? – Epodax

+0

@Epodax я отредактировал мой вопрос извините –

ответ

0

Я не собираюсь оправдывать или ваш дизайн базы данных или кодирования бедна лучшем случае вся ваша цель будет/должен нужен один запрос. Из вашего вопроса, насколько я понимаю, вам нужен запрос, который будет извлекать данные за одну неделю (или ...).измените свой запрос следующим образом

$queryN = "SELECT cognome, ruolo, orario, data FROM Composto, Militi, Turni WHERE Composto.id_milite = Militi.id_milite AND Composto.id_turno = Turni.id_turno AND orario =\"Notte\" AND data between \"2015-04-26\" AND \"2015-04-30\" "; 
Смежные вопросы