 |
เกี่ยวกับการข้อมูลใน Colmun แต่จะดึงแบบไม่ทั้งหมด ค่อนข้างยากครับไม่รู้ว่า จะมีใครทำได้หรือป่าว |
|
 |
|
|
 |
 |
|
เรียบเรียงคำถาม แล้วเอามาถามอีกรอบดีกว่าครับ ผมอ่านสองรอบ แต่ยัง งง ว่าจะ select หรือ insert งง จริงๆ
อ่อ..แล้ว ก็ สมมุติ ไม่ใช่ สมมุด น่ะครับ
|
 |
 |
 |
 |
Date :
2014-09-28 13:40:17 |
By :
mangkunzo |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เคยทำอยู่คือ select มันออกมาแล้วใช้ substr ตัดให้เหลือแค่ 4ตัวแรก เก็บใส่ตัวแปร
|
 |
 |
 |
 |
Date :
2014-09-28 17:37:23 |
By :
ginuwine72 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
กระทู้ที่ 4 - 5 เข้าที่ผิดป่าว เอาคลิปโป้มาโพสทำไม
|
 |
 |
 |
 |
Date :
2014-09-29 02:34:11 |
By :
valentine25 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมดูแล้วคิดว่าน่าจะคล้ายๆกับแบบนี้ http://www.narisa.com/forums/index.php?showtopic=33519
แต่ไม่รู้ว่า ถ้าผมต้องจะตัดกับคำสั่งของผมในตัวอย่างต้องทำยังไง
ใครก็ได้ช่วยหน่อยครับ
|
 |
 |
 |
 |
Date :
2014-09-29 04:12:07 |
By :
valentine25 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
https://www.thaicreate.com/community/forum/110046.html
|
 |
 |
 |
 |
Date :
2014-09-29 06:59:01 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
select substr('1234567890', 1,4) as fld_1234, substr('1234567890', 5,3) as fld_567
ลองเอาไป ทดสอบดูครับ
|
 |
 |
 |
 |
Date :
2014-09-29 09:22:53 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมไม่ได้เรียนด้านโปรแกรมเมอร์มาตรง ๆ เลยสงสัยว่า
ที่ถามมานี้ จริง ๆ มันเรียกว่า สคริป หรือ โค้ด กันแน่ครับ
หรือเรียกได้ 2 อย่าง
|
 |
 |
 |
 |
Date :
2014-09-29 11:19:05 |
By :
apisitp |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
สคริป ก็คือ code ที่นำมาจัดเรียงเพื่อทำงานหนึ่งๆ
ซึ่งโปรแกรมเมอร์รุ่นเก่าเขาเรียกว่า โปรแกรม
หลายๆ โปรแกรมรวมกัน เรียกว่า application
แต่ก็แล้วแต่จะเรียกอะนะ
|
 |
 |
 |
 |
Date :
2014-09-29 11:37:07 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ใช้ Function LEFT เอาครับจะเอากี่ตัวก็ระบุเอาครับ
Code (PHP)
<?php
$result = mssql_query('SELECT LEFT(C001,4) AS SUB_C001 FROM T001 WHERE User=\''.$GLOBALS['user'].'\'');
list($C001)=mssql_fetch_row($result);
$result2=$result;
?>
|
 |
 |
 |
 |
Date :
2014-09-29 21:01:49 |
By :
Krungsri |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ทดสอบ โค๊ด PHP
Code (PHP)
$result=mssql_query('select substr('1234567890', 1,4) as fld_1234, substr('1234567890', 5,3) as fld_567');
$ro=mssql_fetch_assoc($result);
print_r($ro);
|
 |
 |
 |
 |
Date :
2014-09-29 21:19:32 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถามต่อีกนิดนึงครับ ถึงขั้นตอนการอัพเดต ผมจะแก้ยังไง ผมลองมั่วๆแล้วมัน error ต้องแก้ไขส่วนไหนครับ
$result = mssql_query('SELECT LEFT(C001,4) AS SUB_C001 FROM T001 WHERE User=\''.$GLOBALS['user'].'\'');
list($C001)=mssql_fetch_row($result);
$result2=$result;
$sql="Update T001 Set C001 = '".$result2."'0274548 WHERE User=\''.$GLOBALS['user'].'\''
$query=mssql_query($sql);
|
 |
 |
 |
 |
Date :
2014-09-29 23:49:08 |
By :
valentine25 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
$result = mssql_query('SELECT LEFT(C001,4) AS SUB_C001 FROM T001 WHERE User=\''.$GLOBALS['user'].'\'');
list($C001)=mssql_fetch_row($result);
$result2=$result;
$sql="Update T001 Set C001 = '".$result2."'0274548 WHERE User=\''.$GLOBALS['user'].'\''
$query=mssql_query($sql);
ดูท่าจะมีปัญหาซับซ้อนกับการคร่อมโขด เรียงใหม่ง่ายๆครับผสมข้างนอกให้เสร็จค่อยเข้ามาข้างใน
Code (PHP)
$result = mssql_query('SELECT LEFT(C001,4) AS SUB_C001 FROM T001 WHERE User=\''.$GLOBALS['user'].'\'');
list($C001)=mssql_fetch_row($result);
$result2=$result;
$AAA = $result2."0274548";
$sql="Update T001 Set C001 = '$AAA' WHERE User=\''.$GLOBALS['user'].'\''
$query=mssql_query($sql);
|
ประวัติการแก้ไข 2014-09-30 00:15:07
 |
 |
 |
 |
Date :
2014-09-30 00:14:46 |
By :
meannerss |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
list($C001)=mssql_fetch_row($result);
$result2=$result;
สองบันทัดบน ผมไม่เคยเขียนโค๊ดแบบนี้นะครับ ไว้จะลองดู
แต่ผมจะเขียนแบบนี้
Code (PHP)
$row=mssql_fetch_assoc($result);
// ผมใช้ fetch_assoc แทน fetch_row นะครับ
// เพราะผมใช้ ชื่อในการควบคุมตัวแปรอย่างเดียว ไม่ได้ใช้ลำดับที่
$sql="Update T001 Set C001 = '$row[C001]0274548' WHERE User='$GLOBALS[user]' ";
$query=mssql_query($sql);
และโค๊ดทั้งหมดนี้ที่คุณเขียนมา
$result = mssql_query('SELECT LEFT(C001,4) AS SUB_C001 FROM T001 WHERE User=\''.$GLOBALS['user'].'\'');
list($C001)=mssql_fetch_row($result);
$result2=$result;
$sql="Update T001 Set C001 = '".$result2."'0274548 WHERE User=\''.$GLOBALS['user'].'\''
$query=mssql_query($sql);
เขียนได้แบบนี้ครับ
Code (PHP)
$sql="Update T001 Set C001 =CONCAT( LEFT(C001,4), '0274548') WHERE User='$GLOBALS[user]' ";
$query=mssql_query($sql);
|
ประวัติการแก้ไข 2014-09-30 07:12:38
 |
 |
 |
 |
Date :
2014-09-30 07:11:31 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอบความคิดเห็นที่ : 20 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-09-30 07:11:31
รายละเอียดของการตอบ ::
- โค๊ตแรกทดสอบแล้วขึ้น error
Code (PHP)
$row=mssql_fetch_assoc($result);
// ผมใช้ fetch_assoc แทน fetch_row นะครับ
// เพราะผมใช้ ชื่อในการควบคุมตัวแปรอย่างเดียว ไม่ได้ใช้ลำดับที่
$sql="Update T001 Set C001 = '$row[C001]0274548' WHERE User='$GLOBALS[user]' ";
$query=mssql_query($sql);
implicit conversion from datatype varchar to varbinary is not allowed. Use the CONVERT to run this query
- โค๊ตสองทดสอบแล้วขึ้น error
Code (PHP)
$sql="Update T001 Set C001 =CONCAT( LEFT(C001,4), '0274548') WHERE User='$GLOBALS[user]' ";
$query=mssql_query($sql);
'concat' is not a recognized built-in function name.
น่าจะเกี่ยวกับว่าที่ตารางเป็น varbinary ด้วยป่าวครับ ผมลองค้นหาดูมันต้องใช้คำสั่ง
Code (PHP)
CONVERT(varbinary(max), $AAA) หรือ CONVERT(varbinary(จำนวน), $AAA)
แต่ผมไม่รู้ว่าจะมาประยุกต์ใช้งานยังไงดี เพราะระบบที่ผมเขียนตอนนี้ช่องที่ใช้เป็น varbinary รูปแบบที่ต้องการคือ
สมมุติตัวอย่างข้อความในช่อง 0x 0123456789AB CDEF
แต่ผมจะตัดเอาแค่หัวกับท้าย แล้วมาสร้างคำสั่งอัพเดตใหม่ ประมาณว่า 0x 0123xxxxxxxxCDEF
ตอนนี้ผมลองใช้คำสั่งมั่วๆ พออัพเดตไปใช้งานได้ครับ
แต่ยังไม่ตรงกับความต้องการที่ผมจะโอนค่าของเก่ามาใช้หัวกับท้าย และเปลี่ยนแค่ช่วงกลาง
Code (PHP)
$sql="UPDATE T001 SET [C001]= CONVERT(varbinary(16), 0xFFFFFFFFFFFFFFFF)
WHERE User='$GLOBALS[user]'";
$query=mssql_query($sql);
จากนั้นผมลองประยุกต์มาใช้ ตัวที่เราเก็บค่าเอาไว้ สามารถ update สามารถอัพเดตผ่านได้
แต่รับที่ออกมาค่าที่ update ไปเลยมั่วครับ
Code (PHP)
$result = mssql_query('SELECT LEFT(C001,6) AS SUB_C001 FROM T001 WHERE User=\''.$GLOBALS['user'].'\'');
// list($C001)=mssql_fetch_row($result);
// $result2=$result;
$row=mssql_fetch_assoc($result);
$AAA = $result2 . "FFFFFFFFFFFF";
$sql="UPDATE T001 SET [C001]= CONVERT(varbinary(16), '$AAA' )
WHERE User='$GLOBALS[user]'";
$query=mssql_query($sql);
ต้องรบกวนพวกพี่ๆแล้วครับ ผมยังไม่ได้นอนแหะๆ นั่งมั่ว code ทั้งคืนยังไม่ผ่านสักที
ยังไงก็ขอบคุณพวกพี่ๆนะครับ ที่สละเวลามาสอนผม ขอบคุณมากครับ
|
ประวัติการแก้ไข 2014-09-30 09:11:50 2014-09-30 09:12:56 2014-09-30 09:14:04
 |
 |
 |
 |
Date :
2014-09-30 09:10:10 |
By :
valentine25 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|