|
|
|
คำสั้ง sql ครับ อยากแยก คำนำหน้า,ชื่อ,นามสกุล ออกจาก field เดียวกันครับ |
|
|
|
|
|
|
|
ประมาณนี้ นำไปประยุกต์ได้นะ
$fullname = "นายสมพงษ์ มารวย";
list($name1,$surname)=explode(" ",$fullname);
$per = substr($name1,0,3);
$name = substr($name1,3);
echo $per."<br>" ;
echo $name."<br>" ;
echo $surname ;
แต่มีข้อจำกัดของข้อมูล คือ
1. คำนำหน้าชื่อต้องมี 3 อักษร
2. เว้น 1 เคาะระหว่างชื่อกับนามสกุล
|
|
|
|
|
Date :
17 ต.ค. 2550 00:15:58 |
By :
chatpkt |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบพระคุณมากๆครับ
|
|
|
|
|
Date :
17 ต.ค. 2550 09:03:35 |
By :
lomdx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อันนี้ ดัดแปลงเองครับ
เผื่อมีผู้ใดนำไปใช้ประโยชน์
สามารถ แยกคำนำหน้า นาย, นางสาว, นาง ได้
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<?
$fullname = "นางสาวสมพงษ์ มารวย";
$j = 3;
$i = 3;
list($name1,$surname)=explode(" ",$fullname);
$p1 = substr($name1,0,3);
$p2 = substr($name1,0,6);
//แยกคำนำหน้าออกจากชื่อ
if ($p1=="นาย")
{
$j = 3;
}
else if ($p2 == "นางสาว")
{
$j = 6;
}
else if ($p1 == "นาง")
{
$j = 3;
}
//แย่ชื่อออกจากคำนำหน้า
if ($p1=="นาย")
{
$i = 3;
}
else if ($p2 == "นางสาว")
{
$i = 6;
}
else if ($p1 == "นาง")
{
$i = 3;
}
$per = substr($name1,0,$j);
$name = substr($name1,$i);
echo $per."<br>" ;
echo $name."<br>" ;
echo $surname ;
?>
้ต้อง ขอบคุณ คุณ chatpkt มากครับ
|
|
|
|
|
Date :
18 ต.ค. 2550 15:13:34 |
By :
lomdx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากครับทั้งสองคนเลย
ปัญหานี้นั่งทำตั้งหลายวัน
|
|
|
|
|
Date :
28 ส.ค. 2551 00:38:12 |
By :
staker |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ว่าที่ รต. ประพุทธ ม่วงแพรศรี
ว่าที่ รต.นฤมล แสงบุญ
ว่าที่ร้อยตรีชัยทัศ ทับเที่ยง
นาย อัชวรรณ อุทัยรังษี
แล้ว ถ้า เกิด เป็น กรณี แบบ นี้ ละ คะ
ลอง ทำ หลาย รอบ แล้ว ไม่ ได้ ผล เลย
|
|
|
|
|
Date :
2012-04-27 16:17:29 |
By :
minono |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
1ตัวอักษรไทย มีความยาว 3 ไบท์
key[ว่าที่ รต.] key.length = 26 // นับอักขระไทยได้ 8 ตัว คูณด้วย 3 = 24 บวกกับช่องว่าง และ จุด(.) อีก 2 รวมเป็น 26
key[ว่าที่ร้อยตรี] key.length = 39
key[นาย] key.length = 9
key[นาง] key.length = 9
key[นางสาว] key.length = 18
key[น.ส.] key.length = 8
Array ( [1] => Array ( [title] => ว่าที่ รต. [lastName] => ม่วงแพรศรี [firstName] => ประพุทธ ) [2] => Array ( [title] => ว่าที่ รต. [lastName] => แสงบุญ [firstName] => นฤมล ) [3] => Array ( [title] => ว่าที่ร้อยตรี [lastName] => ทับเที่ยง [firstName] => ชัยทัศ ) [4] => Array ( [title] => นาย [lastName] => อุทัยรังษี [firstName] => อัชวรรณ ) )
ส่วนนี้ก็เป็นโค้ดครับ
Code (PHP)
/*
***********************************************
ว่าที่ รต. ประพุทธ ม่วงแพรศรี
ว่าที่ รต.นฤมล แสงบุญ
ว่าที่ร้อยตรีชัยทัศ ทับเที่ยง
นาย อัชวรรณ อุทัยรังษี
*/
$prefix_utf8["ว่าที่ รต."]=26;
$prefix_utf8["ว่าที่ร้อยตรี"]=39;
$prefix_utf8["นาย"]=9;
$prefix_utf8["นาง"]=9;
$prefix_utf8["นางสาว"]=18;
$prefix_utf8["น.ส."]=8;
foreach($prefix_utf8 as $key => $val){
echo "key[$key] key.length = ".strlen($key)."<br />\n";
}
$index =1;
$fullname_utf8 = array("ว่าที่ รต. ประพุทธ ม่วงแพรศรี","ว่าที่ รต.นฤมล แสงบุญ","ว่าที่ร้อยตรีชัยทัศ ทับเที่ยง","นาย อัชวรรณ อุทัยรังษี");
foreach($fullname_utf8 as $individual){
foreach($prefix_utf8 as $key => $keylength){
if(strstr($individual , $key)){
$output[$index]["title"] = substr($individual,0,$keylength);
$individual = substr($individual,$keylength);
list($output[$index]["firstName"],$output[$index]["lastName"]) = explode(" ",trim($individual));
}
}
$index++;
}
print_r($output);
|
|
|
|
|
Date :
2012-04-27 17:35:07 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือข้อมูลทั้งหมดของเรา อยู่ใน ดาต้าเบส phpMyAdmin
ชื่อฟิลด์ name ข้อมูลทุกอย่างทั้งชื่อและนามสกุลอยู่ในฟิลด์เดียวกันหมดเลย หนะคะ
พอไปลองทำตามแล้วโปรแกรมมันงงๆ
ช่วยอธิบายอีกทีได้ไหมคะ
|
|
|
|
|
Date :
2012-05-01 11:01:17 |
By :
minono |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
$prefix_utf8["ว่าที่ รต."]=26;
$prefix_utf8["ว่าที่ร้อยตรี"]=39;
$prefix_utf8["นาย"]=9;
$prefix_utf8["นาง"]=9;
$prefix_utf8["นางสาว"]=18;
$prefix_utf8["น.ส."]=8;
/*
foreach($prefix_utf8 as $key => $val){
echo "key[$key] key.length = ".strlen($key)."<br />\n";
}
*/
$index =1;
$sql = "select name from sometable ";
$res = mysql_query($sql) or die(mysql_error());
while($fullname_utf8 = mysql_fetch_row($res)){;}
foreach($fullname_utf8 as $individual){
foreach($prefix_utf8 as $key => $keylength){
if(strstr($individual , $key)){
$output[$index]["title"] = substr($individual,0,$keylength);
$individual = substr($individual,$keylength);
list($output[$index]["firstName"],$output[$index]["lastName"]) = explode(" ",trim($individual));
}
}
$index++;
}
print_r($output);
|
|
|
|
|
Date :
2012-05-01 11:06:38 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|