ขอคำแนะนำเกี่ยวกับการแยกคำใน String ออกมาเป็นคำแบบ array นะครับ
ผมเก็บรหัสของหน่วยงานเป็น string ไว้ใน field หนึ่ง โดย คำใน string นี้ได้มาจากการที่ผู้ใช้เลือกหน่วยงานที่จะต้องแจ้งข่าวไปถึง ซึ่งแต่ละข่าวก็จะมีการเลือกจำนวนหน่วยงานไม่เท่ากันแล้วแต่กรณี แต่ผมจะไม่เก็บชื่อหน่วยงานจะเก็บเฉพาะรหัสของแต่ละหน่วยงาน ตัวอย่างค่าทีเก็บใน field
record_1=>> 1,2,3,4,6,8,9,11,13,23,34,55,57,59
record_2=>> 1,2,3,4,6,8,9,11,13
record_3=>> 1,2,3,4,6,8,9,11,13,23,34,55,57,59,67,68,69,87
ปัญหามีอยู่ว่า ตอนที่ผมจะแสดงผลออกมาจะต้องแสดงชื่อหน่วยงานจากรหัสของแต่ละหน่วยงานที่เก็บอยู่ใน field โดยจะนำรหัสที่ได้ไปดึงชื่อหน่วยงานมาจากอีกตารางหนึ่งซึ่งเก็บรหัสและชื่อหน่วยงาน ชื่อตาราง unit
คำถาม
1. ใช้คำสั่งหรือฟังก์ชั่นอะไรที่จะดึงรหัสมาทีละตัวแล้วนำไปเปรียบเทียบกับตาราง unit
2. ผมควรใช้คำสั่งใดในการวนลูปเพื่อนำรหัสที่ได้ไปเปียบเทียบกับตาราง unit และแสดงผลชื่อหน่วยงานออกมา
3. สามารถใช้คำสั่งหรือฟังก์ชั่นใดที่จะทราบว่า จำนวนรหัสใน field มีกี่รหัส
รบกวนช่วยแนะนำพอเป็นแนวทางหน่อย งานนี้ถือว่าร่วมกันช่วยชาติของเรานะครับ ขอบคุณล่วงหน้าTag : - - - -
Date :
2010-02-13 09:27:27
By :
ต.เต่า.php
View :
3396
Reply :
2
Code (PHP)
<?php
$record_1 = '1,2,3,4,6,8,9,11,13,23,34,55,57,59';
$record_2 = '1,2,3,4,6,8,9,11,13';
$record_3 = '1,2,3,4,6,8,9,11,13,23,34,55,57,59,67,68,69,87';
$rec1Arr = explode(',' $record_1);
$rec2Arr = explode(',' $record_2);
$rec3Arr = explode(',' $record_3);
$new = array_merge($rec1Arr, $rec2Arr, $rec3Arr);
$result = mysql_query('SELECT * FROM unit WHERE unit_id IN (' . implode(',', $new) . ')');
$unit = array();
while ( $row = mysql_fetch_array($result) )
{
$unit[$row['unit_id']] = $row['unit_name'];
}
?>
เวลาเอาไปใช้ สามารถใช้แบบนี้ เพื่อแสดงหน่วยงานได้เลย
echo $unit[รหัสหน่วยงาน];
วึ่งรหัสหน่วยงาน เราต้อง explode(',');
เช่น
Code (PHP)
$record_1 = '1,2,3,4,6,8,9,11,13,23,34,55,57,59';
$array = explode(',', $record_1);
foreach ( $array AS $val )
{
echo $unit[$val];
}
Date :
2010-02-13 09:52:13
By :
danya
ขอบคุณครับ กำลังลองนำไปใช้อยู่ครับ แล้วจะมารายงานผลอีกที
Date :
2010-02-13 11:41:57
By :
ต.เต่า.php
Load balance : Server 05