Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,038

HOME > PHP > PHP Forum > จะวนยังไงดีครับให้มันออกมาเป็นเหมือนตารางด้านล่างตอนนี้ยังทำไม่ได้เลยครับ


[PHP] จะวนยังไงดีครับให้มันออกมาเป็นเหมือนตารางด้านล่างตอนนี้ยังทำไม่ได้เลยครับ

 
Topic : 094496



โพสกระทู้ ( 74 )
บทความ ( 0 )



สถานะออฟไลน์



ผมมีตาราง 2 ตาราง

อันนี้คือตารางลงทะเบียน
tb_register


อันนี้คิอตารางเวลา
tb_time


จะวนยังไงดีครับให้มันออกมาเป็นเหมือนตารางด้านล่าง
table


ทำมา 3 วันแล้วยังออกไม่ได้เลยใครรู้ช่วยด้วยครับ ขอบคุณครับ



Tag : PHP, CakePHP

Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-04-30 14:36:43 By : wichasit View : 6337 Reply : 19
 

 

No. 1



โพสกระทู้ ( 2,261 )
บทความ ( 5 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

ลิงค์นี่ครับ อาจช่วยคุณได้

query-in-php-while-loop-firing-but-giving-results-of-one-variable
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-04-30 14:47:44 By : Manussawin
 

 

No. 2



โพสกระทู้ ( 74 )
บทความ ( 0 )



สถานะออฟไลน์


มาแบบมึนๆ ใช้ยังไงรึ ฟังชั้นไม่เห็นมีให้โหลดเลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-04-30 15:43:35 By : wichasit
 

 

No. 3



โพสกระทู้ ( 74 )
บทความ ( 0 )



สถานะออฟไลน์


มีใครพออธิบายแนวทางได้ไหมหน้าคนเก่งๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-04-30 15:45:42 By : wichasit
 

 

No. 4



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger

แนวทางตามที่ขอครับ ส่วนการเทียบข้อมูลลองคิวรี่มาเทียบเองนะครับ

ช่วงนี้งานเข้า คงไม่ได้แวะเข้ามาอีกหลายวัน

01.<?php
02. 
03.$row = 7;
04.$timeArr = array( "8.30-9.20", "9.20-10.10", "10.15-11.05", "11.05-11.55",
05.                "11.55-12.45", "12.45-13.35", "13.35-14.30", "14.30-15.20",
06.                "15.20-16.10", "16.10-17.00",
07.                "17.00-17.50");
08. 
09. 
10.function createCol($arr){
11.    $row = "";
12.    foreach( $arr as $data )
13.    {
14.        $row .= '<td>' . $data . '</td>';
15.    }
16.    return $row;
17.}
18. 
19.$list = "";
20.echo '<table border="1" width="90%" align="center">';
21.echo '<tr><td>&nbsp;</td>'. createCol( $timeArr ) .'</tr>';
22.for($i = 0; $i < $row; $i++){
23. 
24.    //ค้นหาข้อมูลในตารางลงทะเบียน
25.    //นับช่วงเวลา start_time กับ stop_time ว่ามีกี่ช่อง
26.    //$num = ช่วงเวลากี่ช่อง
27. 
28.    $list = '<tr>';
29.    $list.= '<td>ลายเซ็น</td>';
30.    foreach( $timeArr as $time )
31.    {  
32.        $highlight = "";
33.        //ถ้ามีข้อมูลตรงช่วงเวลาให้ระบายสี
34.        //if() $highlight = "highlight";
35.        $list.= '<td class="'. $highlight .'">&nbsp;</td>';
36.    }
37.    $list.= '</tr>';
38.    $list.= '<tr>';
39.    $list.= '<td>เอก/รุ่น/ห้อง</td>';
40.    foreach( $timeArr as $time )
41.    {  
42.        $colspan = "";
43.         
44.        //ถ้า $time อยู่ในช่วงข้องข้อมูล ให้แสดงข้อมูล
45.        //และ กำหนด $colspan ด้วย
46.        //if(){
47.        // $colspan = $num;
48.        //}
49.        //ถ้ายังอยู่ในช่วงเวลาสอน ให้สร้างครั้งเดียว
50.        //continue
51.        $data = "&nbsp;";
52.        $list .= '<td '.$colspan.'>' . $data . '</td>';
53.    }
54.    $list .= '</tr>';
55.    echo $list;
56.     
57.}
58.echo '</table>';
59. 
60.?>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-04-30 16:21:53 By : Naizan
 

 

No. 5



โพสกระทู้ ( 74 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณครับเดี๋ยวลองทำดูคับได้ไงเดี๋ยวรายงาน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-04-30 17:53:45 By : wichasit
 

 

No. 6



โพสกระทู้ ( 74 )
บทความ ( 0 )



สถานะออฟไลน์


จากโค้ด ถ้าต้องการเพิี่มช่องด้านหน้าช่อง ลายเซน/รุ่น/ห้อง อีก 2 ช่องเพิ่มตรงไหนหรอครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-04-30 19:35:26 By : wichasit
 

 

No. 7



โพสกระทู้ ( 74 )
บทความ ( 0 )



สถานะออฟไลน์


คุณ Cyberman ผมยังเทียบไม่ได้เลยครับ หรือว่าเพื่อนสมาฃิกท่านไหนพอที่จะเทียบค่าเป็นบ้างครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-04-30 20:33:19 By : wichasit
 

 

No. 8



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger

1. ถ้าต้องการเพิี่มช่องด้านหน้าช่อง ลายเซน/รุ่น/ห้อง อีก 2 ช่องเพิ่มตรงไหนหรอครับ
=> ด้านหน้า อีก 2 ช่องคือค่าอะไรครับ เก็บไว้ในฐานข้อมูลหรือเปล่า

2. เทียบข้อมูลให้หน่อย
=> Export ฐานข้อมูลตามรูปมาให้ด้วยนะครับ จะได้ลองเขียนโค๊ดดู


ปล. เอาไปลองเขียน แต่ไม่รับรองว่าจะได้เร็ววัน ^__^
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-02 08:57:21 By : Naizan
 

 

No. 9



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger

อัพโค๊ดใหม่ ระบายสีช่องที่เป็นเวลาสอนครับ

001.<style>
002..no{ width : 100px; text-align : center;}
003..highlight{ background-color : #cccccc; }
004..title{ text-align : center;}
005.</style>
006.<?php
007. 
008.$timeArr = array(
009.            0 => array( "start" => "08:30", "stop" => "09:20"),
010.            1 => array( "start" => "09:20", "stop" => "10:10"),
011.            2 => array( "start" => "10:15", "stop" => "11:05"),
012.            3 => array( "start" => "11:05", "stop" => "11:55"),
013.            4 => array( "start" => "11:55", "stop" => "12:45"),
014.            5 => array( "start" => "12:45", "stop" => "13:35"),
015.            6 => array( "start" => "13:35", "stop" => "14:30"),
016.            7 => array( "start" => "14:30", "stop" => "15:20"),
017.            8 => array( "start" => "15:20", "stop" => "16:10"),
018.            9 => array( "start" => "16:10", "stop" => "17:00"),
019.            10 => array( "start" => "17:00", "stop" => "17:50")
020.        );
021. 
022.//DATABASE to Array
023.//วนลูปฐานข้อมูล มาเก็บในรูปแบบ Array
024.$timeTeach = array(
025.    0 => array(
026.            array('time' => '08:30-11:55', 'title' => '4312405 เทคโนโลยีสารสนเทศ และการสื่อสาร'),
027.            array('time' => '13:35-15:20', 'title' => '4312605 ระบบฐานข้อมูล')
028.            ),
029.    1 => array(
030.            array('time' => '12:45-16:10', 'title' => '4312502 หัวข้อพิเศษเกี่ยวกับวิทยาการคอมพิวเตอร์')
031.            ),
032.    2 => array(),
033.    3 => array(),
034.    4 => array(),
035.    5 => array(),
036.    6 => array(),
037.    7 => array()
038.);
039.//End การจัดรูปแบบข้อมูล
040. 
041./* Head Column */
042.function createCol($arr){
043.    $row = "";
044.    foreach( $arr as $data )
045.    {
046.        $row .= '<td>' . $data['start'] . '-' . $data['stop'] . '</td>';
047.    }
048.    return $row;
049.}
050. 
051./* Key Positon */
052.function getCol($haystack, $keyNeedle)
053.{
054.    $i = 0;
055.    foreach($haystack as $arr)
056.    {
057.        if($arr['start'] == $keyNeedle)
058.        {
059.            return $i;
060.        }
061.        $i++;
062.    }
063.}
064. 
065./* Time Range */
066.function getTimeRange($timeT, $timeCol){
067.    $data = array();
068.    foreach($timeT as $timeA){
069.        $time = $timeA['time'];
070.        if(!$time) continue;
071.        $tm = explode("-", $time);
072.        //echo '<pre>', print_r($tm,true) ,'</pre>';
073.        $start = getCol($timeCol, $tm[0]);
074.        $end = getCol($timeCol, $tm[1] );
075.        $colspan = $end - $start;
076.        $data[$tm[0]] = array('colspan' => $colspan, 'title' => $timeA['title']);
077.    }
078.    return $data;
079.}
080. 
081.$list = "";
082.echo '<table border="1" width="90%" align="center" cellspacing="0">';
083.echo '<tr><td>&nbsp;</td><td>&nbsp;</td>'. createCol( $timeArr ) .'</tr>';
084.foreach($timeTeach as $i=>$arr){
085. 
086.    //ค้นหาข้อมูลในตารางลงทะเบียน
087.    //นับช่วงเวลา start_time กับ stop_time ว่ามีกี่ช่อง
088.    $timeT = $timeTeach[$i];
089.     
090.    $arrRange = getTimeRange($timeT, $timeArr);
091.     
092.    //echo '<pre>', print_r($arrRange,true) ,'</pre>';
093.     
094.    $no = $i + 1;
095. 
096.    $list = '<tr>';
097.    $list.= '<td rowspan="2" class="no">'.$no.'</td>';
098.    $list.= '<td>ลายเซ็น</td>';
099.    $chkCol = 0;
100.    $col = 0;
101.    foreach( $timeArr as $timeA )
102.    {  
103.        $highlight = "";
104.        $colspan = "";
105.        if($chkCol < ($col-1) && $col != 0){
106.            $chkCol++;
107.            continue;
108.        }
109.        $col = 0;
110.        $chkCol = 0;
111.        if(!empty($arrRange[trim($timeA['start'])])){
112.            $col = $arrRange[trim($timeA['start'])]['colspan'];
113.            $highlight = "highlight";
114.            $colspan = 'colspan="'.$col.'"';
115.        }
116.        $list.= '<td '.$colspan.' class="'. $highlight .'">&nbsp;</td>';
117.    }
118.    $list.= '</tr>';
119.     
120.    $list.= '<tr>';
121.    $list.= '<td>เอก/รุ่น/ห้อง</td>';
122.    foreach( $timeArr as $timeA )
123.    {  
124.        $highlight = "";
125.        $colspan = "";
126.        if($chkCol < ($col-1) && $col != 0){
127.            $chkCol++;
128.            continue;
129.        }
130.        $title = "&nbsp;";
131.        $col = 0;
132.        $chkCol = 0;
133.        if(!empty($arrRange[trim($timeA['start'])])){
134.            $col = $arrRange[trim($timeA['start'])]['colspan'];
135.            $title = $arrRange[trim($timeA['start'])]['title'];
136.            $highlight = "highlight";
137.            $colspan = 'colspan="'.$col.'"';
138.        }
139.         
140.        $list .= '<td '.$colspan.' class="'. $highlight .' title">' . $title . '</td>';
141.    }
142.    $list .= '</tr>';
143.    echo $list;
144.     
145.}
146.echo '</table>';
147. 
148.?>



อัพเดตหัวข้อ เพิ่มเข้าไปในตาราง


ประวัติการแก้ไข
2013-05-02 13:35:42
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-02 09:58:08 By : Naizan
 

 

No. 10



โพสกระทู้ ( 74 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณครับจะลองประยุกต์ดูครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-02 11:52:55 By : wichasit
 

 

No. 11



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger

tead

วนลูปค่าต่างในฐานข้อมูล มาเก็บในตัวแปร $timeTeach ให้ตรงกับที่ต้องการนะครับ
ซึ่งในทีนี้จะสร้างตัวแปรแค่ time กับ title สำหรับเก็บเวลา และ ชื่อบทเรียน

ซอร์สโค๊ดผมขออัพเดตด้านบนนะครับ เพื่อเป็นการประหยัดพื้นที่ ^^
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-02 13:35:01 By : Naizan
 

 

No. 12



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger

$timeArr ถ้าต้องการดึงจากข้อมูล ตารางที่ 1

Code (PHP)
1.while($rs = mysql_fetch_assoc($result)){
2.    $timeArr[$rs['id_time'] = array( "start" => $rs['start_time'], "stop" => $rs['start_time']);
3.}


id_time ถ้าเริ่มจาก 1 ในส่วนของ $timeTeach ก็ต้องมี คีย์ที่ตรงกัน


ในส่วนของ $timeTeach ดึงมาจากตารางที่ 1
Code (PHP)
1.while($rs = mysql_fetch_assoc($result)){
2.    $timeArr[$rs['id_time'][] = array( "start" => $rs['start_time'], "stop" => $rs['start_time']);
3.}  


ในส่วนนี้ $rs['start_time'] และ $rs['start_time'] ต้องตัดส่วนของ วินาทีออกไปด้วย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-02 14:03:45 By : Naizan
 

 

No. 13

Guest


แล้ววิธีทำให้ออกมาแสดงในหน้าจอเราแบบ มีinser ข้อมูลลงไปทำยังไงอะคับ วนขอผู้รู้ช่วยที่นะคับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-15 00:38:34 By : pathapong
 

 

No. 14



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger

$timeArr ถ้าต้องการดึงจากข้อมูล ตารางที่ 2
while($rs = mysql_fetch_assoc($result)){
$timeArr[$rs['id_time']] = array( "start" => $rs['start_time'], "stop" => $rs['start_time']);
}


ในส่วนของ $timeTeach ดึงมาจากตารางที่ 1
while($rs = mysql_fetch_assoc($result)){
$timeArr[$rs['id_time']][] = array( "start" => $rs['start_time'], "stop" => $rs['start_time']);
}

ปล.
ตกไปตัวนึงกลับมาแก้ให้ครับ
มีคนนำโค๊ดนี้ไปรันแล้ว Error เลยขุดขึ้นมาแก้ซะเลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-06-27 08:46:49 By : {Cyberman}
 

 

No. 15



โพสกระทู้ ( 6 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 9 เขียนโดย : Naizan เมื่อวันที่ 2013-05-02 09:58:08
รายละเอียดของการตอบ ::
พี่ครับ ช่วยอธิบาย Code ให้ทีครับ กำลังทำคล้ายๆกันแต่อ่าน Code พี่ไม่ออก ขอบคุณมากครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-11-22 21:58:25 By : newubuntu
 

 

No. 16

Guest


เฮ้อ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-11-23 09:16:45 By : เหนื่อยจจัง
 

 

No. 17

Guest


โทษนะครับ จากเลข 1 - 8 เปลี่ยนเป็นวัน จันทร์ ถึง ศุกร์ ได้ไง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-04 23:30:10 By : t
 

 

No. 18



โพสกระทู้ ( 318 )
บทความ ( 0 )



สถานะออฟไลน์


ขอดันหน่อยนะครับ

อยากทราบว่า เมื่อได้ตารางเรียนมาแร้ว ผมจะทำระบบขอเพิ่มรายวิชาอ่ะครับ คือเมื่อนักศึกษามาลงเพิ่มรายวิชาแล้ว อยากให้เช็คว่า รายวิชาที่ลงไปใหม่ มีการซ้ำกับตารางเรียน หรือ คาบเวลาชนกันกับตารางเรียนที่มีอยู่หรือไม่อ่ะครับ ช่วยแนะนำทีครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-07-09 11:46:12 By : angelkiller9
 

 

No. 19



โพสกระทู้ ( 3 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ขอโทษนะคับ หากเราต้องการจะใส่สีพื้นหลังของรายวิชาที่อยู่ในตาราง เราต้องเพิ่ม code ที่ส่วนใดคับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-03-13 17:14:15 By : chanumpon
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : จะวนยังไงดีครับให้มันออกมาเป็นเหมือนตารางด้านล่างตอนนี้ยังทำไม่ได้เลยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)





ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2025 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่