2013-11-21 3 views
0

매일 사용하기 위해 5 명을위한 작은 약속 시간표를 만들려고합니다. 제가 지금 가지고있는 유일한 문제는 시간표에 같은 직원을위한 모든 약속을 한 칸에 표시하는 것입니다. 나는 몇 가지 다른 방법을 시도했지만 지금까지 운이 없다. 나는 내가 얻은 최선의 두 가지 시도를 게시 할 것이다.설정된 날짜의 mysql 레코드를 시간표에 결합 하시겠습니까?

다음은 처음 작성한 코드에서 얻은 출력 예입니다. 이 출력에 대한 쿼리는 지정된 날짜에 그 직원 단지 일반 쿼리처럼

http://jsfiddle.net/yy885/CXcjR/2/

는 별도로 약속을 표시합니다. 내 문제는 이러한 3 개의 레코드를 결합하여이 시간표의 한 열에 출력하는 방법을 찾을 수 없다는 것입니다. 현재로서는 각자 5 개의 약속이 있다면 잘 작동하지 않을 25 개의 레코드 (25 개의 열)가 표시됩니다. 지금까지 가지고있는 코드를 기반으로하면 빠르게 해결할 수있는 방법을 생각할 수 있지만 사용하지 않는 것이 좋습니다. 한 번에 한 명의 직원 만 표시됩니다. 그러나 그녀는 시간표를 간과하고 잘못된 시간/시간을 고객에게 줄 수 있기 때문에 약속을 표시하려고하는 소녀에게는이 방법이 어렵습니다.

<?php 

include("connect.php");//connect to the database. 
//$todaydate = date('m/d/Y'); 
$todaydate = "11/22/2013"; 
$staffd = "Jerry"; 
$query = mysql_query('SELECT * FROM appointment2 where date="'.$todaydate.'" AND  staff="'.$staffd.'"'); 
$num_row = mysql_num_rows ($query); 

if ($num_row > 0) { 
$i=0; 
while($i < $num_row){ 

$date = mysql_result($query,$i,"date"); 
$clientid = mysql_result($query,$i,"clientid"); 
$staff = mysql_result($query,$i,"staff"); 
$status = mysql_result($query,$i,"status"); 
$paid = mysql_result($query,$i,"paid"); 
$comment = mysql_result($query,$i,"comment"); 

$t0900 = mysql_result($query,$i,"0900"); 
$t0915 = mysql_result($query,$i,"0915"); 
$t0930 = mysql_result($query,$i,"0930"); 
$t0945 = mysql_result($query,$i,"0945"); 
$t1000 = mysql_result($query,$i,"1000"); 
$t1015 = mysql_result($query,$i,"1015"); 
$t1030 = mysql_result($query,$i,"1030"); 
$t1045 = mysql_result($query,$i,"1045"); 
$t1100 = mysql_result($query,$i,"1100"); 
$t1115 = mysql_result($query,$i,"1115"); 
$t1130 = mysql_result($query,$i,"1130"); 
$t1145 = mysql_result($query,$i,"1145"); 
$t1200 = mysql_result($query,$i,"1200"); 
$t1215 = mysql_result($query,$i,"1215"); 
$t1230 = mysql_result($query,$i,"1230"); 
$t1245 = mysql_result($query,$i,"1245"); 
$t1300 = mysql_result($query,$i,"1300"); 
$t1315 = mysql_result($query,$i,"1315"); 
$t1330 = mysql_result($query,$i,"1330"); 
$t1345 = mysql_result($query,$i,"1345"); 
$t1400 = mysql_result($query,$i,"1400"); 
$t1415 = mysql_result($query,$i,"1415"); 
$t1430 = mysql_result($query,$i,"1430"); 
$t1445 = mysql_result($query,$i,"1445"); 
$t1500 = mysql_result($query,$i,"1500"); 
$t1515 = mysql_result($query,$i,"1515"); 
$t1530 = mysql_result($query,$i,"1530"); 
$t1545 = mysql_result($query,$i,"1545"); 
$t1600 = mysql_result($query,$i,"1600"); 
$t1615 = mysql_result($query,$i,"1615"); 
$t1630 = mysql_result($query,$i,"1630"); 
$t1645 = mysql_result($query,$i,"1645"); 
$t1700 = mysql_result($query,$i,"1700"); 
$t1715 = mysql_result($query,$i,"1715"); 
$t1730 = mysql_result($query,$i,"1730"); 
$t1745 = mysql_result($query,$i,"1745"); 
$t1800 = mysql_result($query,$i,"1800"); 
$t1815 = mysql_result($query,$i,"1815"); 
$t1830 = mysql_result($query,$i,"1830"); 
$t1845 = mysql_result($query,$i,"1845"); 
$t1900 = mysql_result($query,$i,"1900"); 
$t1915 = mysql_result($query,$i,"1915"); 
$t1930 = mysql_result($query,$i,"1930"); 
$t1945 = mysql_result($query,$i,"1945"); 
$t2000 = mysql_result($query,$i,"2000"); 
$t2015 = mysql_result($query,$i,"2015"); 
$t2030 = mysql_result($query,$i,"2030"); 
$t2045 = mysql_result($query,$i,"2045"); 


echo  '<table border="1">'; 
echo  '<tr><td style="word-wrap: break-word">'.$date.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">&nbsp;&nbsp;&nbsp;'.$staff.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t0900.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t0915.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t0930.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t0945.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1000.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1015.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1030.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1045.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1100.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1115.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1130.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1145.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1200.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1215.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1230.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1245.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1300.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1315.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1330.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1345.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1400.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1415.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1430.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1445.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1500.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1515.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1530.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1545.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1600.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1615.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1630.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1645.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1700.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1715.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1730.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1745.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1800.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1815.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1830.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1845.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1900.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1915.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1930.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t1945.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t2000.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t2015.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t2030.'</td></tr>'; 
echo  '<tr><td style="word-wrap: break-word">'.$t2045.'</td></tr>'; 
echo  '</table>'; 

++$i; } } else { echo "No record found"; } 
?> 

두 번째 시도. 날짜, 시간, 직원 및 이벤트로 mysql을 다시 작성합니다. 나는 하나의 문자열에 시간과 사건을 넣기 위해 concat을 사용했다. 그래서 내가 사용한 질의는 이것을 날짜와 직원의 이름으로 부르는 것입니다. 그런 다음 그 결과를 배열에 넣고 추출합니다.

결과는 다음과 같습니다.

0945 Event A part 1 
1115 Event A part 2 
1315 Event B part 1 
1630 Event B part 2 
1745 Event B part 3 
1900 Event C part 1 
1945 Event C part 2 
2015 Event B part 4 

하지만 시간표에 멋지게 넣을 수있는 방법이 무엇인지 알 수 없습니다. 테이블에 넣을 수는 있지만 그 빈 슬롯을 보여주기가 어렵습니다.

다음은 시도한 코드입니다. 난 아직도 내 방법은 늘 잘 작동 생각하는

<?php 
include("connect.php");//connect to the database. 
$todaydate = "11/22/2013"; 
$staffd = "Jerry"; 

$query = 'SELECT CONCAT(time," ",event) FROM appointment3 where date="'.$todaydate.'" AND staff="'.$staffd.'"'; 
$result = mysql_query($query) or die ("no query"); 

$result_array = array(); 
while($row = mysql_fetch_assoc($result)) 
{ 
    $new_arr[] = $row['CONCAT(time," ",event)'];  
} 
sort($new_arr); 
foreach ($new_arr as $value) { 
    echo $value."<br />\n"; 
} 
?> 

어떤 제안은 모든

답변

0

먼저 ... 환영합니다 : 대신 필요없이 500 선은 그들에 <tr>...</tr> 단지 루프를 울리는.

빈 창이 뜨면 방해물이 생깁니다. 그 (것)들에는 무엇이든다는 것을 아닙니다, 그래서 당신은없는 시간을 채우기 위하여 그것을 할 수있다.

그런 다음 사용하여 기본 빈 이벤트를 생성 할 수 있습니다
$lines = ...; 

$hours = []; 
foreach ($lines as $line) 
{ 
    $hour = substr($line, 0, 4); 
    $hours[$hour] = $line; 
} 

같은 것을 사용하여 수행 할 수 있습니다 시간표가 연관 배열에 저장되어있는 경우

는 : 도움을

for ($i = 0; $i < 24; $i ++) 
    for ($j = 0; $j < 60; $j += 5) 
    { 
     $hour = sprintf('%02d%02d', $i, $j); 
     if (!isset($hours[$hour])) 
      $hours[$hour] = "$hour (empty)"; 
    } 

var_dump($hours); 
+0

감사합니다! 나는 그것이 지금 어떻게 작동하는지에 관해 계산했다! 유일한 문제는 실제로 이것을 테이블에 삽입하는 것입니다. 그러나 Array ([0] => '[1] => [2] =>'[3] => '.....') 여전히 남아 있습니다. 그들을 제거 할 방법이 있습니까? 다시 한 번 감사드립니다. –