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,037

HOME > PHP > PHP Forum > รบกวนดูโค้ดให้หน่อยครับ ทำแล้วมันไม่แสดงผล ตามที่ต้องการ



 

รบกวนดูโค้ดให้หน่อยครับ ทำแล้วมันไม่แสดงผล ตามที่ต้องการ

 



Topic : 093854

Guest




111

พอดีว่า ผมทำตารางบันทึกเวลา เป็นช่วง เวลา 4 ช่วง
แต่ละช่วงเวลาสามารถดูได้ ข้อมูลไม่มั่วกัน
แต่ทำไมเวลาที่ ต้องการ จะดึงข้อมุล ทั้ง 4 ช่วงเวลา ให้มาอยู่ในตารางเดียวกัน ข้อมุล กลับมาเยอะมาก

รบกวนดูโค้ดให้หน่อยนะครับ

Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>แสดงเวลา</title>
</head>
<body>
<?
include "connect.php";
include "function.php";

$sql="select  tb_time.name,tb_time.day,tb_time.date,tb_time1.date1,tb_time2.date2,tb_time3.date3
from tb_time,tb_time1,tb_time2,tb_time3 order by name 
"
; 
$result=mysql_db_query($dbname,$sql);

echo "
<p><h 2>แสดง</h2>

<table width='100%' border='1' align='center'>
  <tr bgcolor='#D2E9FF'> 
    <td width='13%'> <center><b><font size='2' face='MS Sans Serif'>วัน</font></b></center></td>
	    <td width='15%'> <center><b><font size='2' face='MS Sans Serif'>เวลาเข้า ตอนเช้า</font></b></center></td>
<td width='15%'> <center><b><font size='2' face='MS Sans Serif'>เวลาออก ตอนเช้า</font></b></center></td>
<td width='15%'> <center><b><font size='2' face='MS Sans Serif'>เวลาเข้า ตอนบ่าย</font></b></center></td>
<td width='15%'> <center><b><font size='2' face='MS Sans Serif'>เวลาออก ตอนบ่าย</font></b></center></td>
    <td width='15%'> <center><b><font size='2' face='MS Sans Serif'>ชื่อ</font></b></center></td>
</tr>";

while($record=mysql_fetch_array($result)) {
	$name=$record[name];
	$day=$record[day];
	$date=$record[date];
	$date1=$record[date1];
	$date2=$record[date2];
	$date3=$record[date3];
	
	$day=displaydate($day);
	$name=htmlspecialchars($name);
	$date=displaydate($date);

			
	echo "
	<tr bgcolor='#FFFFFF'> 
		<td width='13%'> <font size='2' face='MS Sans Serif'>$day</a></font></td>
		<td width='15%'> <center><font size='2' face='MS Sans Serif'>$date</font></center></td>
			<td width='15%'> <center><font size='2' face='MS Sans Serif'>$date1</font></center></td>
			<td width='15%'> <center><font size='2' face='MS Sans Serif'>$date2</font></center></td>
			<td width='15%'> <center><font size='2' face='MS Sans Serif'>$date3</font></center></td>
		<td width='15%'> <center><font size='2' face='MS Sans Serif'>$name</font></center></td>
</tr>";

} // end while
echo "</table>";
  
?>
<p>&nbsp;</p>

</body>
</html>




Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-04-17 18:58:42 By : tan View : 1300 Reply : 10
 

 

No. 1



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

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

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

ข้อมูลยังน้อยเกินไปครับ ลองอธิบายพวกโครงสร้าง Table ด้วยครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-04-18 10:38:13 By : mr.win
 


 

No. 2



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



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

การ JOIN ตารางแบบไม่มี WHERE ฟิลด์ที่สัมพันธ์กัน
และไม่ได้ GROUP by เรคอร์ดที่ซ้ำกัน ข้อมูลคงจะออกมาหมดนั่นแหละครับ

คงต้องเริ่งจากโครงสร้างว่าตารางไหนเก็บอะไร และสัมพันธ์กับตารางอะไรบ้าง
ภาพเล็กเกินไป มองไม่ออกครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-04-18 13:23:49 By : Naizan
 

 

No. 3

Guest


ผมสร้าง ตารางเก็บข้อมูล 4 ตาราง ทั้ง 4 ตารางมีฟิลด์ที่เหมือนกันๆ คือ id,name,day,date แล้วผมก็สร้าง ฟอร์มการรับข้อมูลมา 4 ฟอร์ม
แบบว่า ฟอร์ม1 ใช้ตารางที่1

tan

บันทึกข้อมูลเข้าแล้ว ก็สามารถเรียกดูข้อมูลได้ ตามภาพ

คราวนี้ ผมต้องการที่จะถึงข้อมูลของ 4 ตารางออกมา ก็เลยสร้างอีกฟอร์ม1 ใช้ในการดึงข้อมูลออกมาโชว์ ผมต้องการให้ แสดงผลเวลาของ 4 ช่่วงเวลาให้มาอยุ่ใน ตารางเดียวกัน ของแต่ละคน

tan1

แต่นี้ ออกมาเยอะมาก
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-04-18 15:14:19 By : tan
 


 

No. 4



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



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

ดูจากข้อมูล ฟิลด์ที่ใช้เชื่อมกันระหว่าง 4 ตาราง มีอยู่ 2 ฟิลด์ครับ

คือ
1. ฟิลด์วันที่ => GROUP by
2. ชื่อ => JOIN

เวลา JOIN ตารางต้องใส่เงื่อนไขนี้เข้าไปใน WHERE


$sql = "SELECT tb_time.name, tb_time.day, tb_time.date, tb_time1.date1, tb_time2.date2, tb_time3.date3 ";
$sql .= "FROM tb_time, tb_time1, tb_time2, tb_time3 ";
$sql .= "WHERE tb_time.name = tb_time1.name AND tb_time.name = tb_time2.name AND tb_time.name = tb_time3.name";
$sql .= "GROUP by tb_time.day";
$sql .= "ORDER by name ";



ไม่มีข้อมูลทดสอบเลยไม่ค่อยแน่ใจ หากไม่มีข้อมูลแสดงออกมาเลย ให้ลองเปลี่ยนเป็น
ตัด WHERE ออก แล้วไปเพิ่ม GROUP by แทน
Code (PHP)
$sql = "SELECT tb_time.name, tb_time.day, tb_time.date, tb_time1.date1, tb_time2.date2, tb_time3.date3 ";
$sql .= "FROM tb_time, tb_time1, tb_time2, tb_time3 ";
$sql .= "GROUP by tb_time.day,tb_time.name ";
$sql .= "ORDER by name ";



ประวัติการแก้ไข
2013-04-18 16:53:53
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-04-18 16:52:06 By : Naizan
 


 

No. 5



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



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


ลองใส่โค้ดแล้ว เวลาที่บันทึกคนเดียว มานก็ขึ้นข้อมูลถูกต้อง แต่ใส่คนที่ 2 ที่ 3 เข้าไป 3 ตารางสุดท้าย ดึงข้อมูลของคนสุดท้ายมาใส่ ไม่รู้ว่า เป็นอะไร


tan2
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-04-18 18:37:56 By : littlelove
 


 

No. 6



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



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

เปลี่ยนเป็นใช้ Syntax ของการเชื่อมตารางเป็นแบบ LEFT JOIN นะครับ

Code (SQL)
SELECT tb_time.name, tb_time.day, tb_time.date, tb_time1.date1, tb_time2.date2, tb_time3.date3
FROM tb_time
LEFT JOIN tb_time1 ON tb_time.name = tb_time1.name1
LEFT JOIN tb_time2 ON tb_time.name = tb_time2.name2
LEFT JOIN tb_time3 ON tb_time.name = tb_time3.name3
GROUP BY tb_time.day, tb_time.name
ORDER BY tb_time.day, tb_time.name

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-04-20 10:57:39 By : Naizan
 


 

No. 7



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



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


พี่ครับ จากตารางเดิม ลองไปหาโค้ดมาทำเอง แต่อยากให้รันทุกวัน เป็นการแสดงผลวันต่อวันอ่ะครับ

tan

Code (PHP)
<?php
include "connect.php";
$sql=" SELECT  date1 from tb_time1  ";
$result=mysql_db_query($dbname,$sql);
while($record=mysql_fetch_array($result)) {
$date1 = $record[date1];
} 
//echo "$date1</br>";

$sql=" SELECT  date2 from tb_time2  ";
$result=mysql_db_query($dbname,$sql);
while($record=mysql_fetch_array($result)) {
$date2 = $record[date2];
} 
//echo "$date2</br>";
$dif = strtotime($date2) - strtotime($date1);

class Duration1
{
    function toString ($duration, $periods = null)
    {
        if (!is_array($duration)) {
            $duration = Duration1::int2array($duration, $periods);
        }
 return Duration1::array2string($duration);
    }
    function int2array ($seconds, $periods = null)
    {        
        // Define time periods
        if (!is_array($periods)) {
            $periods = array (
                    'years'     => 31556926,
                    'months'    => 2629743,
                    'weeks'     => 604800,
                    'days'      => 86400,
                    'hours'     => 3600,
                    'minutes'   => 60,
                    'seconds'   => 1
                    );
        }
        $seconds = (float) $seconds;
        foreach ($periods as $period => $value) {
            $count = floor($seconds / $value);
 
            if ($count == 0) {
                continue;
            }
 
            $values[$period] = $count;
            $seconds = $seconds % $value;
        }
        if (empty($values)) {
            $values = null;
        }
 
        return $values;
    }
    function array2string ($duration)
    {
        if (!is_array($duration)) {
            return false;
        }
 
        foreach ($duration as $key => $value) {
            $segment_name = substr($key, 0, -1);
            $segment = $value . ' ' . $segment_name; 
 
            // Plural
            if ($value != 1) {
                $segment .= 's';
            }
 
            $array[] = $segment;
        }
 
        $str = implode(', ', $array);
        return $str;
    }
 
}
 
// Convert to a string
echo"มาทำงานตอนเที่ยง ช้าเป็นเวลา  " ;
echo Duration1::toString($dif);
 
?>

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


 

No. 8



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



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

การดึงข้อมูล tb_time1 กับ tb_time2 มาเปรียบเทียบกัน

$dif = strtotime($date2) - strtotime($date1);


มันเป็น $dif = เวลาเข้างานตอนบ่าย - เวลาออกงานตอนเช้า

ค่าที่ได้ มันจะกลายเป็นว่าใช้เวลา "พักเที่ยง" เท่าไหร่


การที่จะหาว่ามาทำงานตอนเช้า ช้าไปเท่าไหร่ เราต้องสร้างตัวแปรขึ้นมาเก็บเวลาเข้างานตอนเช้าก่อนครับ
แนะนำให้สร้างในไฟล์ config.php เพื่อเรียกใช้ได้หลายๆที่ เช่น

$startTimeMorning = "08:00:00";



ถ้าอยากทราบว่ามาสายเท่าไหร่ ก็เอาเวลาที่เข้างานเช้า ลบกับเวลาเข้างานที่บริษัทกำหนด ก็จะได้

$dif = strtotime($date1) - strtotime($startTimeMorning );



ส่วนเข้างานตอนบ่าย ก็สร้างตัวแปรเก็บค่า เช่น บริษัทกำหนดให้เข้างานที่บ่ายโมง
$startTimeAfternoon = "13:00:00";


และต้องการทราบว่าตอนบ่ายมาสายเท่าไหร่ ก็เอาเวลาที่เข้างานบ่าย ลบกับเวลาเข้างานที่บริษัทกำหนด ก็จะได้
$dif2 = strtotime($date2) - strtotime($startTimeAfternoon );


ลองแก้ดูนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-04-26 06:09:50 By : Naizan
 


 

No. 9



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



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


ขอบคุณครับ ที่ให้ความช่วยเหลือ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-04-26 16:20:42 By : littlelove
 


 

No. 10



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



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


พี่ครับ อยากได้ โค้ด เอาเวลามาสาย ตอนเช้า บวกกับ มาสาย ตอนบ่าย ทำไงอ่ะ ลองทำแล้วมันไม่ได้ มันเอา นาที กับ วินาทีเลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-04-30 17:55:02 By : littlelove
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
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 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

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