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

HOME > PHP > PHP Forum > มีข้อมูลเป็น Array แต่จะเอาไป Where ใน DataBase ต้องทำไงครับ



 

มีข้อมูลเป็น Array แต่จะเอาไป Where ใน DataBase ต้องทำไงครับ

 



Topic : 127959



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



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




สอบถามหน่อยครับ พอดี ผมมีข้อมูล เป็น $BuildArray = array(217,200);

แล้ว จะเอา ไป Where ในฐานข้อมูลต้องทำไงหรอครับ

Code (PHP)
$Sql = "
SELECT
dbo.tb_job.nId_job,
dbo.tb_jobtype.cJobtype_name,
tb_building.cBuilding,
actorKong.cKongName AS cActorName,
dbo.tb_lookupmaster.cName AS cStatusName
FROM [dbo].[tb_job]
LEFT JOIN dbo.tb_lookupmaster ON dbo.tb_job.nId_status = dbo.tb_lookupmaster.nId
LEFT JOIN dbo.tb_jobtype ON dbo.tb_job.nId_type = dbo.tb_jobtype.nIdJobtype
LEFT JOIN tb_building ON tb_building.nId_building = tb_job.nId_building
LEFT JOIN dbo.tb_kong AS actorKong ON dbo.tb_job.nId_kongActor = actorKong.nId_kong
WHERE
tb_job.nId_job IS NOT NULL
AND	dbo.tb_building.cBuilding LIKE '%$Building[0]%' // <- ตรงนี้ต้องเขียนยังไงครับ ถ้ามีมากกว่า 1 ครับ
";




Tag : PHP









ประวัติการแก้ไข
2017-06-12 15:39:35
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-06-12 15:38:55 By : weekung072 View : 622 Reply : 4
 

 

No. 1



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



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


Code (PHP)
foreach($BuildArray  as $data) {
....
where ..tb_building.cBuilding LIKE '%$data%'
}


ลองดูครับ








ประวัติการแก้ไข
2017-06-12 16:28:51
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-06-12 16:28:20 By : ilikeit
 


 

No. 2



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



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


ไม่ได้ครับ ข้อมูลมาครบหมด เลยครับ เหมือนไม่ได้ where ครับ จริงๆๆแล้ว ตรง where จะเป็นแบบนี้ครับ ถ้ามีมากกว่า 1 ค่านะครับ

Where tb_building.cBuilding LIKE '%$BuildArray[0]%' OR tb_building.cBuilding LIKE '%$BuildArray[1]%'

เลยไม่รู้จะเขียนยังไงครับ ถ้าทำตรงๆๆ ก็จะง่าย แต่ว่า มันไม่แน่นอนครับ อาจมี 5 ค่า หรือ 1 ค่าได้ตามแต่ User ครับ


ประวัติการแก้ไข
2017-06-12 17:50:42
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-06-12 17:39:38 By : weekung072
 

 

No. 3



โพสกระทู้ ( 4,720 )
บทความ ( 8 )



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


Code (PHP)
$Sql = "
SELECT
dbo.tb_job.nId_job,
dbo.tb_jobtype.cJobtype_name,
tb_building.cBuilding,
actorKong.cKongName AS cActorName,
dbo.tb_lookupmaster.cName AS cStatusName
FROM [dbo].[tb_job]
LEFT JOIN dbo.tb_lookupmaster ON dbo.tb_job.nId_status = dbo.tb_lookupmaster.nId
LEFT JOIN dbo.tb_jobtype ON dbo.tb_job.nId_type = dbo.tb_jobtype.nIdJobtype
LEFT JOIN tb_building ON tb_building.nId_building = tb_job.nId_building
LEFT JOIN dbo.tb_kong AS actorKong ON dbo.tb_job.nId_kongActor = actorKong.nId_kong
WHERE
tb_job.nId_job IS NOT NULL";
// ปิดไปก่อน
//AND	dbo.tb_building.cBuilding LIKE '%$Building[0]%' // <- ตรงนี้ต้องเขียนยังไงครับ ถ้ามีมากกว่า 1 ครับ
$Sql .= " AND ( ";

// Get array keys
$arrayKeys = array_keys($array);
// Fetch last array key
$lastArrayKey = array_pop($arrayKeys);

foreach($BuildArray  as $k => $data) {
    $Sql .= "dbo.tb_building.cBuilding LIKE '%$data%'";
    if ($k !== $lastArrayKey) {
        $Sql .= " OR ";
    }
}

$Sql .= ")";



เอาคำตอบของคุณข้างบนนั่นแหละมาใช้ มันทำงานได้ แค่ต้องเล่นกับ array ให้เป็นและรู้การใส่เงื่อนไข OR
การตรวจเงื่อนไข loop สุดท้ายของ array ก็เอามาจาก https://stackoverflow.com/a/6092100/128761


ประวัติการแก้ไข
2017-06-12 22:23:26
2017-06-13 08:41:10
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-06-12 22:22:22 By : mr.v
 


 

No. 4



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



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


ขอบคุณมากครับ คุณ mr.v
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-06-13 08:39:56 By : weekung072
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : มีข้อมูลเป็น Array แต่จะเอาไป Where ใน DataBase ต้องทำไงครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 01
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 อัตราราคา คลิกที่นี่