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

HOME > PHP > PHP Forum > สอบถามเกี่ยวกับค่า string แตกเป็น array ด้วยคำสั่ง explode



 

สอบถามเกี่ยวกับค่า string แตกเป็น array ด้วยคำสั่ง explode

 



Topic : 125435



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



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



Code (PHP)
<?php 
/* Database connection start */
$servername = "localhost";
$username = "root";
$password = "4321";
$dbname = "salecentral";

$conn = mysqli_connect($servername, $username, $password, $dbname) or die("Connection failed: " . mysqli_connect_error());
mysqli_set_charset($conn,"utf8");
/* Database connection end */


// storing  request (ie, get/post) global array to a variable  
$requestData= $_REQUEST;


$columns = array( 
// datatable column index  => database column name
	0 =>'ptype',
	1 =>'date',
	2 =>'name_partner',
	3 =>'po_no', 
	4 => 'qt_no',
	5 => 'com',
	6 => 'all_file',
	7 => 'Ename'
);

// getting total number records without any search
$sql = "......";
$query=mysqli_query($conn, $sql) or die("employee-grid-data.php: get employees");
$totalData = mysqli_num_rows($query);
$totalFiltered = $totalData;  // when there is no search parameter then total number rows = total number filtered rows.

$sql = "......";
if( !empty($requestData['search']['value']) ) {   // if there is a search parameter, $requestData['search']['value'] contains search parameter
	$sql.=" AND ( ptype LIKE '%".$requestData['search']['value']."%' ";    
	$sql.=" OR date LIKE '%".$requestData['search']['value']."%' ";
	$sql.=" OR name_partner LIKE '%".$requestData['search']['value']."%' ";
	$sql.=" OR po_no LIKE '%".$requestData['search']['value']."%' ";
	$sql.=" OR qt_no LIKE '%".$requestData['search']['value']."%' ";
	$sql.=" OR com LIKE '%".$requestData['search']['value']."%' ";
	$sql.=" OR Ename LIKE '%".$requestData['search']['value']."%' )";
	
}
$query=mysqli_query($conn, $sql) or die("employee-grid-data.php: get employees");
$totalFiltered = mysqli_num_rows($query); // when there is a search parameter then we have to modify total number filtered rows as per search result. 
$sql.=" ORDER BY ". $columns[$requestData['order'][0]['column']]."   ".$requestData['order'][0]['dir']."  LIMIT ".$requestData['start']." ,".$requestData['length']."   ";
/* $requestData['order'][0]['column'] contains colmun index, $requestData['order'][0]['dir'] contains order such as asc/desc  */	
$query=mysqli_query($conn, $sql) or die("employee-grid-data.php: get employees");


$data = array();
while( $row=mysqli_fetch_array($query) ) {  // preparing an array
	$idPO= $row["idPO"];
	$nestedData=array();
	if($row['ptype']=='po') { $nestedData[] = "PO";} 
	if($row['ptype']=='ใบเคลม') { $nestedData[] = "ใบเคลม";} 
	
	if($row['com']=='CC') { $nestedData[] = "<div style='color: red;opacity:0.0;'>$row[com]</div><img src='images/central.png' height='40px'/>";} 
			if($row['com']=='CL') { $nestedData[] = "<div style='color: red;opacity:0.0;'>$row[com]</div><img src='images/clwheel.png' height='40px'/>";}
			if($row['com']=='DS') { $nestedData[] = "<div style='color: red;opacity:0.0;'>$row[com]</div><img src='images/dreamshop.png' height='40px'/>";}

	list($Year,$month,$day) = explode("-",$row['date']);
    $nestedData[] = (int)$day."/".(int)$month."/".($Year+543);
	
	$nestedData[] = $row["po_no"];
	if($row['qt_no']!= "ประวัติลูกค้า" && $row['qt_no']!= "ข้อมูลSale"){
	if (strpos($row['qt_no'],'Rev'))
	{ $nestedData[] = "<a class='example1' href='viewEdit$row[com].php?idx=$row[qt_no]'>$row[qt_no]</a>";}
	else{ $nestedData[] = "<a class='example1' href='view$row[com].php?idx=$row[qt_no]'>$row[qt_no]</a>";}
	} else { $nestedData[] = $row['qt_no'];}
	$nestedData[] = $row["name_partner"];
	/* $row["all_file"] คือ ไฟล์ที่มีทั้งหมดของใบ po นั้น แล้วแต่ว่า poหนึ่งๆจะมีกี่ใบก็ได้ GROUP_CONCAT( po_detail.file ) AS all_file ตย. เช่น po.no=PO0005941 มี1ไฟล์ ชื่อ 181125591.jpg  $row["all_file"]=181125591.jpg
po.no=F31591 มี2ไฟล์ ชื่อ 181125592.jpg,181125593.jpg  $row["all_file"]=181125592.jpg,181125593.jpg
*/
	$array = explode(',', $row["all_file"]);
	foreach(array_unique($array ) as $val){
	list($name,$type) = explode(".",$val);
     if ($type =='pdf') { $nestedData[] = "<a class='example1' href='images/po/$val'><img src='images/po/PDF-icon.png' align='left' width='60px'/></a>";}
	 else {	 $nestedData[] = "<a class='example1' href='preview.php?type=po&images=$val'><img src='images/po/$val' width='60px'/></a>";}
	
	}
	/*list($name,$type) = explode(".",$row['file']);
     if ($type =='pdf') { $nestedData[] = "<a class='example1' href='images/po/$row[file]'><img src='images/po/PDF-icon.png' align='left' width='60px'/></a>";}
	 else {	 $nestedData[] = "<a class='example1' href='preview.php?type=po&images=$row[file]'><img src='images/po/$row[file]' width='60px'/></a>";}
	*/$nestedData[] = $row['Ename']." (".$row['Enname'].")"; 
	$nestedData[] = "<a class='example1' href='checkEdit.php?idx=$idPO&po=po' target='_self'><img src='../images/edit.png' width='30' title='แก้ไข' border='0' ></a>";
	$data[] = $nestedData;
}



$json_data = array(
			"draw"            => intval( $requestData['draw'] ),   // for every request/draw by clientside , they send a number as a parameter, when they recieve a response/data they first check the draw number, so we are sending same number in draw. 
			"recordsTotal"    => intval( $totalData ),  // total number of records
			"recordsFiltered" => intval( $totalFiltered ), // total number of records after searching, if there is no searching then totalFiltered = totalData
			"data"            => $data   // total data array
			);

echo json_encode($json_data);  // send data as json format
?>


ฟิลด์ all_file เก็บชื่อไฟล์ เป็น string ต่อกันเช่น aaa.jpg,bbb.jpb
จากนั้นก็แตกเป็น array ด้วยคำสั่ง explode
แต่อยากให้ไฟล์อยู่ตรงช่องฟิลด์ค่ะ โดยไฟล์ที่2,3,4,...ขึ้นบรรทัดใหม่เรียงลงมา
แต่อันนี้เหมือนมันขยับออกไปด้านข้างค่ะ ทำให้ข้อมูลฟิลด์อื่น หายไป

19-11-59



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-11-19 16:08:17 By : bsaranya View : 1599 Reply : 4
 

 

No. 1



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



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


ผมว่ามันน่าจะล้นตอน foreach บรรทัดที่ 78
ลองต่อสตริงไฟล์ทั้งหมดแล้วค่อยไปกำหนดใส่อาเรย์ดูครับ

Code (PHP)
 $strFile = '';
foreach(array_unique($array ) as $val){
list($name,$type) = explode(".",$val);
if ($type =='pdf') { $strFile .= "<a class='example1' href='images/po/$val'><img src='images/po/PDF-icon.png' align='left' width='60px'/></a>";}
else {  $strFile .$nestedData[] = "<a class='example1' href='preview.php?type=po&images=$val'><img src='images/po/$val' width='60px'/></a>";}
}
$nestedData[]=$strFile;







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-11-19 16:21:54 By : Luz
 


 

No. 2



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



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

ลองใส่ดูแล้ว ก็ไม่ได้ค่ะ

Code (PHP)
        $array = explode(',', $row["all_file"]);
	$strFile = '';
	foreach(array_unique($array ) as $val){
	list($name,$type) = explode(".",$val);
	if ($type =='pdf') { $strFile .= "<a class='example1' href='images/po/$val'><img src='images/po/PDF-icon.png' align='left' width='60px'/></a>";}
	else {  $strFile .$nestedData[] = "<a class='example1' href='preview.php?type=po&images=$val'><img src='images/po/$val' width='60px'/></a>";}
	}
	$nestedData[]=$strFile;


21-11-59
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-11-21 14:26:05 By : bsaranya
 

 

No. 3



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



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


ตอบความคิดเห็นที่ : 2 เขียนโดย : bsaranya เมื่อวันที่ 2016-11-21 14:26:05
รายละเอียดของการตอบ ::
ลืมดุโค้ด พอดีพิมเร็วไปหน่อยโทดทีฮะ55
Code (PHP)
แก้จาก
else {  $strFile .$nestedData[] = "<a class='example1' href='preview.php?type=po&images=$val'><img src='images/po/$val' width='60px'/></a>";}
เป็น
else {  $strFile . = "<a class='example1' href='preview.php?type=po&images=$val'><img src='images/po/$val' width='60px'/></a>";}


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-11-21 18:11:49 By : Luz
 


 

No. 4



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



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

ก่อนหน้านี้หนูลองเปลี่ยนจาก $strFile .$nestedData[]= เป็น $strFile .=
อย่างที่พี่บอกเลยค่ะ แต่พอลองกดค้นหา แล้วมันไม่ได้ หนูต้องแก้โค้ดเกี่ยวกับที่ค้นหายังไงคะ

Code (PHP)
$sql = "SELECT a.id AS idPO, a.date, c.name_partner, a.po_no, a.qt_no, a.com, d.Ename, d.Enname, a.ptype, GROUP_CONCAT( b.file ) AS all_file
FROM po a
LEFT JOIN partner c ON a.id_partner = c.id_partner
LEFT JOIN employee d ON a.id_author = d.Eid
LEFT JOIN po_detail b ON a.id = b.id_po
WHERE b.id_po IS NOT NULL 
AND 1=1 GROUP BY a.id";
if( !empty($requestData['search']['value']) ) {   // if there is a search parameter, $requestData['search']['value'] contains search parameter
	$sql.=" AND ( ptype LIKE '%".$requestData['search']['value']."%' ";    
	$sql.=" OR date LIKE '%".$requestData['search']['value']."%' ";
	$sql.=" OR name_partner LIKE '%".$requestData['search']['value']."%' ";
	$sql.=" OR po_no LIKE '%".$requestData['search']['value']."%' ";
	$sql.=" OR qt_no LIKE '%".$requestData['search']['value']."%' ";
	$sql.=" OR com LIKE '%".$requestData['search']['value']."%' ";
	$sql.=" OR Ename LIKE '%".$requestData['search']['value']."%' )";
	
}
$query=mysqli_query($conn, $sql) or die("employee-grid-data.php: get employees");
$totalFiltered = mysqli_num_rows($query); // when there is a search parameter then we have to modify total number filtered rows as per search result. 
$sql.=" ORDER BY ". $columns[$requestData['order'][0]['column']]."   ".$requestData['order'][0]['dir']."  LIMIT ".$requestData['start']." ,".$requestData['length']."   ";
/* $requestData['order'][0]['column'] contains colmun index, $requestData['order'][0]['dir'] contains order such as asc/desc  */	
$query=mysqli_query($conn, $sql) or die("employee-grid-data.php: get employees");


ก่อนกดค้นหา
22-11-59-1

กดค้นหา รายการที่2 มีปัญหาจากตอนแรก มีไฟล์เดียว พอกดค้นหา ขึ้นมาหลายไฟล์
22-11-59-2

ลองใช้โค้ดค้นหาใน mysql ก็มีไฟล์เดียว
22-11-59-3
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-11-22 11:57:45 By : bsaranya
 

   

ค้นหาข้อมูล


   
 

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