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

HOME > PHP > PHP Forum > สอบถามวิธีทำไห้ array วนลูปแบบ foreach ให้แสดงข้อมูลในคอลัมน์เดียวกันหน่อยครับ



 

สอบถามวิธีทำไห้ array วนลูปแบบ foreach ให้แสดงข้อมูลในคอลัมน์เดียวกันหน่อยครับ

 



Topic : 128398



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



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




code
font
คือผมลองเอาโค้ด จากในกระทู้เก่ามาลองทำ
แล้วติดตรงว่า ข้อมูลที่ select มาจะจัดอยู่ในรูปแบบ array
และวนลูปด้วย foreach พอแสดงผลออกมาแล้วข้อมูลจะแสดงเป็นคอลัมน์ใหม่
ผมอยากให้ข้อมูลที่แสดงออกมา แสดงรวมกันในคอลัมเดียวกันครับ



Tag : PHP, HTML, Google Chrome, Web Services, XAMPP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-07-27 19:13:44 By : sos View : 3826 Reply : 12
 

 

No. 1



โพสกระทู้ ( 9,544 )
บทความ ( 2 )



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


ตรวจสอบ array ว่ามันมีค่าถูกต้องตามต้องการหรือไม่

print_r($allReportData); ค่าที่ได้จะเอามาทำงานได้หรือไม่

น่าจะกำหนดค่าไม่ถูก






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-07-27 20:26:48 By : Chaidhanan
 


 

No. 2



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : Chaidhanan เมื่อวันที่ 2017-07-27 20:26:48
รายละเอียดของการตอบ ::
ได้อย่างงี้ครับ
คือผมต้องจัดเก็บ array ยังไงครับชวยแนะนำหน่อย
#มือใหม่
Array ( [147] => Array ( [24] => 1377 ) [210] => Array ( [26] => 210 ) [850] => Array ( [27] => 997 ) )

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-07-27 20:30:07 By : sos
 

 

No. 3



โพสกระทู้ ( 9,544 )
บทความ ( 2 )



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


ดูจากการกำหนดค่าให้กับ $allReportData โดยเอา total มาเป็นคีย์ ก็งงแล้วครับ
น่าจะตัด total ออกไป เอาแค่ bk_day มาเป็นคียแทน เพราะมีการ group by ด้วย bk_day

สำหรับมือใหม่ ไม่ควรเอาภาพมาลงเมื่อสามารถ ใช้ text มาลงได้ เพราะจะทำให้สามารถ copy ได้
เอาภาพมาลงในส่วนของโค๊ดมัน copy code ไม่ได้ก็ไม่อยากช่วยซักเท่าไหร่ เพราะขึ้เกียจพิมพ์เอง มันผิดเพี้ยนได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-07-27 21:02:36 By : Chaidhanan
 


 

No. 4



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



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


ตอบความคิดเห็นที่ : 3 เขียนโดย : Chaidhanan เมื่อวันที่ 2017-07-27 21:02:36
รายละเอียดของการตอบ ::
Code (PHP)
//รับค่าตัวแปรที่ส่งมาจากแบบฟอร์ม HTML
$year = isset($_POST['txt_year']) ? mysqli_real_escape_string($con,$_POST['txt_year']) : '';
$month = isset($_POST['txt_month']) ? mysqli_real_escape_string($con,$_POST['txt_month']) : '';

if($year == '' || $month == '') exit('<p class="fail">กรุณาระบุ "เดือน-ปี" ที่ต้องการเรียกรายงาน</p>');


//เรียกข้อมูลการจองของเดือนที่ต้องการ 
$allReportData = array();
$strSQL = "SELECT Total, DAY(`ShippingDate`) AS bk_day, SUM(Total) AS numBook FROM `ecom_order` ";
$strSQL.= "WHERE `ShippingDate` LIKE '$year-$month%' ";
$strSQL.= "GROUP by Total,DAY(`ShippingDate`)";
$qry = mysqli_query($con,$strSQL) or die('ไม่สามารถเชื่อมต่อฐานข้อมูลได้ Error : '. mysqli_error());
while($row = mysqli_fetch_assoc($qry)){
	$allReportData[$row['Total']][$row['bk_day']] = $row['numBook'];
}

echo "<table border='0' id='test_report' cellpadding='0' cellspacing='0'>";


//วันที่สุดท้ายของเดือน
$timeDate = strtotime($year.'-'.$month."-01");  //เปลี่ยนวันที่เป็น timestamp
$lastDay = date("t", $timeDate);   				//จำนวนวันของเดือน
//สร้างหัวตารางตั้งแต่วันที่ 1 ถึงวันที่สุดท้ายของดือน
for($day=1;$day<=$lastDay;$day++){

	echo '<tr>';
	echo '<th>' . substr("0".$day, -2) . '</th>';
	foreach($allReportData as $empCode=>$empName){
		$numBook = isset($allReportData[$empCode][$day]) ? '<div>'.$allReportData[$empCode][$day].'</div>' : 0;
		echo "<td class='number'>",$numBook,"</td>";
	}
	echo '</tr>';
}
echo "</table>";
mysqli_close($con);//ปิดการเชื่อมต่อฐานข้อมูล

ขอบคุณที่แนะนำครับ
ที่ผมเอา Total มาเพราะว่าตอนแรกต้นฉบับเป็นรหัสคนซื้อ และ count(*) มันจะได้จำนวนครั้งที่ซื้อมา
แต่ผมอยากได้ราคารวมเลยนำ Total มาใส่แทนและเปลี่ยนจาก count(*) เป็น sum(Total) ดูครับ
หรือว่าผมควรใช้โค้ดรูปแบบอื่นง่ายกว่า ช่วยแนะนำทีครับ
ขอบคุณครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-07-27 21:22:31 By : sos
 


 

No. 5



โพสกระทู้ ( 9,544 )
บทความ ( 2 )



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


Code (PHP)
$strSQL = "
SELECT DAY(`ShippingDate`) AS bk_day, SUM(Total) AS numBook FROM `ecom_order` 
WHERE left(`ShippingDate`, 7) = '$year-$month'
GROUP by DAY(`ShippingDate`)
";
   ...
   ...
   ...
while($row=....){
    $allReportData[$row['bk_day']]=$row['numBook'];



อันนี้จะเป็น ผลรวมตามวันที่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-07-27 21:48:48 By : Chaidhanan
 


 

No. 6



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



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


ตอบความคิดเห็นที่ : 5 เขียนโดย : Chaidhanan เมื่อวันที่ 2017-07-27 21:48:48
รายละเอียดของการตอบ ::
ได้ละครับพี่
ขอบคุณมากๆเลยครับผม


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-07-27 22:35:11 By : sos
 


 

No. 7



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



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


ตอบความคิดเห็นที่ : 5 เขียนโดย : Chaidhanan เมื่อวันที่ 2017-07-27 21:48:48
รายละเอียดของการตอบ ::
รบกวนถามต่ออีกนิดนะครับ ถ้าผมต้องการนำ code นี้ไปทำต่อโดยการกดดูข้อมูลในวันที่นั้นๆ
อย่างเช่นผมต้องการกดดูข้อมูลของวันที่ 24 จะได้ข้อมูลในฐานข้อมูลของเฉพาะวันที่ 24 มาแสดง
ควรจะ select ข้อมูลมายังไงครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-07-29 08:27:55 By : sos
 


 

No. 8



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

สมาชิกที่ใส่เสื้อไทยครีเอท

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


WHERE DATE(ShippingDate)='2017-07-01'

เฉพาะวันเดือนปีนั้นๆ

WHERE DAY(ShippingDate)='01'

เฉพาะวันที่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-07-29 09:21:27 By : Pong Thep
 


 

No. 9



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



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


ตอบความคิดเห็นที่ : 8 เขียนโดย : Pong Thep เมื่อวันที่ 2017-07-29 09:21:27
รายละเอียดของการตอบ ::
จาก code ก่อนหน้านี้คือ
Code (PHP)
//รับค่าตัวแปรที่ส่งมาจากแบบฟอร์ม HTML
$year = isset($_POST['txt_year']) ? mysqli_real_escape_string($con,$_POST['txt_year']) : '';
$month = isset($_POST['txt_month']) ? mysqli_real_escape_string($con,$_POST['txt_month']) : '';

if($year == '' || $month == '') exit('<p class="fail">กรุณาระบุ "เดือน-ปี" ที่ต้องการเรียกรายงาน</p>');

//เรียกข้อมูลการจองของเดือนที่ต้องการ 
$allReportData = array();
$strSQL = "
SELECT DAY(`ShippingDate`) AS bk_day, SUM(Total) AS numBook FROM `ecom_order` 
WHERE left(`ShippingDate`, 7) = '$year-$month'
GROUP by DAY(`ShippingDate`)";
$qry = mysqli_query($con,$strSQL) or die('ไม่สามารถเชื่อมต่อฐานข้อมูลได้ Error : '. mysqli_error());
while($row = mysqli_fetch_assoc($qry)){
	error_reporting(~E_NOTICE);
	$allReportData[$row['Total']][$row['bk_day']]=$row['numBook'];
}

echo "<table border='0' id='test_report' cellpadding='0' cellspacing='0'>";

	echo '<tr class="day">';
		echo '<td>','วันที่','</td>';
		echo '<td width="200">','ยอดรวม','</td>';
		echo '<td>','ดูรายละเอียด','</td>';
	echo '</tr>';

//วันที่สุดท้ายของเดือน
$timeDate = strtotime($year.'-'.$month."-01");  //เปลี่ยนวันที่เป็น timestamp
$lastDay = date("t", $timeDate);   				//จำนวนวันของเดือน
//สร้างหัวตารางตั้งแต่วันที่ 1 ถึงวันที่สุดท้ายของดือน
for($day=1;$day<=$lastDay;$day++){

	echo '<tr>';
	echo '<th>' . substr("0".$day, -2) . '</th>';
	foreach($allReportData as $empCode=>$empName){
		$numBook = isset($allReportData[$empCode][$day]) ? '<div>'.$allReportData[$empCode][$day].'</div>' : 0;
		echo "<td class='number'>",$numBook,"</td>";
	}	
		if ($numBook) {
			echo "<td class='icn-see'>";
			include('icn_report.php');
			echo "</td>";
		}else{
			echo "<td class='icn-see2'></td>";
		}
		
	echo '</tr>';
}
echo "</table>";
mysqli_close($con);//ปิดการเชื่อมต่อฐานข้อมูล

จะได้
sd
แล้วผมอยากทำเพิ่มคือกดดูข้อมูลเพิ่มเติมในวันที่นั้นๆ
แล้วจะดึงข้อมูลเฉพาะวันที่นั้นมาครับ
ถ้า WHERE DATE(ShippingDate)='2017-07-01' มันจะได้เฉพาะของวันที่ 1

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-07-29 10:31:47 By : sos
 


 

No. 10



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

สมาชิกที่ใส่เสื้อไทยครีเอท

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


ตอบความคิดเห็นที่ : 9 เขียนโดย : sos เมื่อวันที่ 2017-07-29 10:31:47
รายละเอียดของการตอบ ::
หน้ารายละเอียดก็แค่ส่ง วันเดือนปี ไปแค่นั้นเองนะ ไม่มีอะไรซับซ้อนเลย
$allReportData ก็ส่งค่า ปีกับเดือนมาด้วย

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-07-29 16:00:41 By : Pong Thep
 


 

No. 11



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



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


ตอบความคิดเห็นที่ : 10 เขียนโดย : Pong Thep เมื่อวันที่ 2017-07-29 16:00:41
รายละเอียดของการตอบ ::
รบกวนขอตัวอย่างโค้ดกรณีนี้หน่อยได้มั้ยครับ
ขอบคุณครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-07-30 10:28:45 By : sos
 


 

No. 12



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



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

ที่ tr ของแต่ละ row เพิ่มevent onclick หรือtag <a> เพื่อลิงค์ไปหน้า detail
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-07-30 15:08:48 By : NewbiePHP
 

   

ค้นหาข้อมูล


   
 

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