พี่ ๆ ทุกคนระดมช่วยหนูทีค่ะ คิดไม่ออกแล้ว ผิดตรงไหนไม่รู้!!!!!!!!!!!!!!!!
ช่วยทีๆๆๆๆๆๆ ค่ะ
Date :
2010-03-04 12:54:13
By :
yingnoi
ไม่รู้เหมือนกันแต่
$_POST[Lt10]and
มันติดกัน
น่าจะเปลี่ยนเป็น
Code (PHP)
echo $strSQL = "UPDATE EM_logtime SET Lt1 = '".$time_w_in."' , Lt2 = '".$time_w_out."', Lt5 = '".$_POST[lt5]."' where Lt10 = '".$_POST[Lt10]."' and Lt0 = '".$_POST[Lt0]."' ";
Date :
2010-03-04 13:06:42
By :
peterXP
ตรง AND ควรให้มีช่องว่างนะครับ ถ้าพิมพ์ติดมัน มันจะมองเป็นตัวแปรเดียวกัน
Date :
2010-03-04 13:09:12
By :
deawx
echo $strSQL = "UPDATE EM_logtime SET Lt1 = '".$time_w_in."' , Lt2 = '".$time_w_out."', Lt5 = '".$_POST[lt5]."' where Lt10 = '".$_POST[Lt10]."' and Lt0 = '".$_POST[Lt0]."' ";
แก้ตามพี่ที่บอกแล้ว ค่าก็ยังเป็นช่องว่างอยู่ค่ะ ตัวแปรที่ update ไปไม่เข้าเลย แงๆๆๆๆๆๆๆๆๆๆๆ
Date :
2010-03-04 13:35:16
By :
yingnoi
ลอง echo sql command ออกมาดูก่อนว่าทำไมถึงเป็น null ยังไม่ต้อง update
Date :
2010-03-04 13:38:52
By :
tungman
เจ้ากรรมลืมดู
Code (PHP)
$time_w_in = "$_POST[datefixed] $_POST[time_in]";
$time_w_out = "$_POST[datefixed] $_POST[time_out]";
จะต่อ string เหรอ
ถ้าจะต่อต้องแบบนี้ครับ
Code (PHP)
$time_w_in = $_POST[datefixed]." ".$_POST[time_in];
$time_w_out = $_POST[datefixed]." ".$_POST[time_out];
ผมว่า น่าจะเป็นการเตรียมตัวแปร ก่อน update มีไรผิดสักอย่าง
ลอง
print_r($_POST);
ออกมาดู
Date :
2010-03-04 14:01:39
By :
peterXP
ค่าจาก print_r($_POST);
จะได้เป็น
Array ( [datefixed] => 21/10/2009 [Lt0] => 6IT5167 [Branch] => EMSaha [Lt10] => 84363 [time_in] => 08:26:03 [time_out] => 18:00:00 [lt5] => 0 )
ตอนนี้ค่าแค่วันที่ และ เวลาไม่เข้าค่ะ ค่าของ $time_w_in และ $time_w_out
ค่า Lt1 และ Lt2 จะถูกกำหนดเป็น datetime นะคะ ไม่แน่ใจว่าต้องแปลงให้เป็นแบบ datetime ก่อนมั้ย
Date :
2010-03-04 14:10:53
By :
yingnoi
[size=10pt][/ลืมบอกไปค่ะว่า ค่า Lt1 และ Lt2 ที่ได้รับจากตัวแปร $time_w_in และ $time_w_out จะกำหนดเป็น datetime ค่ะ size]
Date :
2010-03-04 14:26:57
By :
yingnoi
ทำไมไม่ใส่ ' ' ใส่ [] ด้วยล่ะครับ บางทีอาจมีปัญหาด้วยนะ ลอง echo sql ออกมาดูอีกที ถ้าใส่ '' แล้ว
Date :
2010-03-04 14:30:48
By :
pjgunner
ตรงไหนเหรอคะพี่
ตอนนี้น้องลองเปลี่ยน
Code (PHP)
<?
$objConnect = mssql_connect(".","sa","") or die("Error Connect to Database");
$objDB = mssql_select_db("$_GET[Branch]");
$time_w_in = $_POST[datefixed]." ".$_POST[time_in];
$time_w_out = $_POST[datefixed]." ".$_POST[time_out];
$strSQL = "UPDATE EM_logtime SET ";
$strSQL .="Lt1 = '".$time_w_in."', ";
$strSQL .="Lt2 = '".$time_w_out."', ";
$strSQL .="Lt5 = '".$_POST["lt5"]."' ";
$strSQL .="WHERE Lt10 = '".$_POST["Lt10"]."' ";
$objQuery = mssql_query($strSQL);
mssql_close($objConnect);
?>
มันก็ยังเหมือนเดิมค่ะ ค่าวัน-เวลาไม่เก็บ
เพิ่มเติมค่ะ
ถ้าสมมุติในตารางเก็บ Lt1 เป็น 09/11/2009 08.00:00 และ Lt2 เป็น 09/11/2009 17.00:00
เวลาที่แก้ไข Lt1 เป็น 09/11/2009 07.30:00 ในตารางจะถูกเปลี่ยนเป็น 11/09/2009 07.30:00
ค่าวันกับเดือนจะเปลี่ยนไปเลย
และ..
ถ้าถ้า Lt1 เป็น 21/11/2009 08.00:00 และ Lt2 เป็น 21/11/2009 17.00:00 หรือ Lt2 เป็นค่าว่าง
เวลาแก้ไข Lt1 หรือ Lt2 ค่าจะว่างไม่มีการเปลี่ยนแปลงค่ะ หรือว่าเป็นเพราะ สลับวัน-เดือนเป็น 11/21/2009 ไม่ได้คะ
Date :
2010-03-04 14:32:44
By :
yingnoi
ex. $_POST['abc'];
ฟีลชนิดไหน ก็ใส่ชนิดนั้นครับ
Date :
2010-03-04 14:34:51
By :
pjgunner
และชนิด datetime ทำไงคะ รบกวนพี่เอี่ยวดูความคิดเห็นที่ 10 หน่อยสิคะ น้องอธิบายความน่าจะเป็นคะ
Date :
2010-03-04 14:43:41
By :
yingnoi
ยังไงก็เอา sql ที่ได้จาก $strSQL มาดูครับ
ส่วน datetime ของ mssql ผมไม่รู้ว่า มันเก็บแบบไหน เหมือน mysql หรือป่าว
Date :
2010-03-04 14:47:56
By :
pjgunner
ค่า echo ของ $strSQL จะได้ UPDATE EM_logtime SET Lt1 = '11/02/2009 07:28:25', Lt2 = '11/02/2009 17:02:35', Lt5 = '0' WHERE Lt10 = '86574' vpjk'ouhvjt8jt
Date :
2010-03-04 15:11:28
By :
yingnoi
ถ้าข้อมูลมา หมด ทุกอย่าง แล้ว ไม่ลง
กำหนด Lt1 , Lt1 เป็น date time
ลอง กำหนด เป็น vachar ดู ก่อนไหม ถ้า มัน ลง
แปลว่า คง จัดลำดับ datetime ผิด แบบ เลย ไม่ลง DB ให้ ครับ
Date :
2010-03-04 18:14:30
By :
tmtcom
คับผมลิงเสอร์จดูแล้ว ฝรั่งเขาก็มีปัญหาเหมือนกัน ลองใช้ varchar หรือใช้ long เก็บเป็น timestamp เอาก็ได้หากว่าสามารถเปลี่ยนได้
Date :
2010-03-04 18:18:21
By :
pjgunner
จากกระทู้ที่ 15 ลองแก้ตามแล้ว มันขึ้น error ว่า
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\AppServ\www\Admin\ChangeTimeOfEmp.php on line 8
อ่ะค่ะ
ฟ้องตรง
$strSQL = "UPDATE EM_logtime SET Lt1 = CONVERT(datetime, '$time_w_in', 103), Lt2 = CONVERT(datetime, '$time_w_out', 103), Lt5 = '0' WHERE Lt10 = '$_POST['Lt10']'";
Date :
2010-03-05 09:10:24
By :
yingnoi
Code (PHP)
$strSQL = "UPDATE EM_logtime SET Lt1 = '$time_w_in' , Lt2 = '$time_w_out', Lt5 = '$_POST[lt5]' where Lt10 = '$_POST[Lt10]' and Lt0 = '$_POST[Lt0]' ";
ควรใส่เครื่องหมาย ' ' ด้วยน่ะครับ เพราะถ้าไม่มีค่าขึ้นมา นี่ปัญหาใหญ่เลย
Date :
2010-03-05 09:14:34
By :
webmaster
พี่ ๆ คะแก้ได้แล้วตามความคิดเห็นที่ 15 ค่ะ ต้องแก้เป็นอย่างนี้ค่ะ
$strSQL = "UPDATE EM_logtime SET Lt1 = CONVERT(datetime, '$time_w_in', 103), Lt2 = CONVERT(datetime, '$time_w_out', 103), Lt5 = '$_GET[lt5]' WHERE Lt10 = '$_POST[Lt10]'";
ขอบพระคุณพี่ ๆทุกคนนะคะที่ช่วย
Date :
2010-03-05 09:18:22
By :
yingnoi
Load balance : Server 05