Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 107,529

HOME > PHP > PHP Forum > php mysql ต้องการใช้ loop for เปรียบเทียบข้อมูลที่อยู่ใน array แล้ว count จำนวน Fieldname ที่ต้องการและ groupbyให้อยู่ใน Group





 

php mysql ต้องการใช้ loop for เปรียบเทียบข้อมูลที่อยู่ใน array แล้ว count จำนวน Fieldname ที่ต้องการและ groupbyให้อยู่ใน Group

 



Topic : 132299



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



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



ผมต้องการที่จะ join database ไปยัง serverที่2 ตอนนี้สามารถ connect แล้ว query ข้อมูลที่อยู่ใน server2
ได้เเล้ว และเก็บข้อมูลไว้ใน $A[],$B[] ตอนนี้ผมต้องการใช้ loop เพื่อที่จะ count จำนวนที่อยู่ใน field name ที่อยู่ใน column Number ว่ามี A อยู่ทั้งหมดกี่ตัว จากนั้นผมต้องการที่จะจัดGroup ให้ field name ที่มี A ให้อยู่ใน GroupA(column GroupName) รบกวนพี่ๆๆช่วยเเนะนำวิธีด้วยครับ

Server1
Host: 10.0.00.0 ipสมมุติ
User: root
Pass: root
dbname countnumber
tbname counttest01

Server1 Host: 10.0.00.0 dbname countnumber tbname

Server2
Host: 10.0.000.00 ipสมมุติ
User: root
Pass: root
dbname countnumber02
tbname dbcount01

Server2 Host: 10.0.000.00 User: root Pass: root


Code (PHP)
<?php
//server1
$dbhost1 = "10.0.00.00";
$dbuser1 = "root";
$dbpassword1 = "root";
$dbname1 = "countnumber";
$conA = new mysqli($dbhost1,$dbuser1,$dbpassword1,$dbname1) or die (mysqli_error());
$queryA = "SELECT id,Number FROM counttest01";

$resultA = mysqli_query($conA,$queryA);
while ($objResultA = mysqli_fetch_array($resultA)) 
	{
 		$A[]=($objResultA["id"]."|".$objResultA["Number"])."<br>";
	}
mysqli_close($conA);
echo ($A[0].$A[1].$A[2].$A[3].$A[4].$A[5].$A[6].$A[7].$A[8].$A[9].$A[10].$A[11].$A[12].$A[13].$A[14].$A[15].$A[16].$A[17].$A[18].$A[19]);

//server2
$dbhost2 = "10.0.000.00";
$dbuser2 = "root";
$dbpassword2 = "root";
$dbname2 = "countnumber02";
$conB = new mysqli($dbhost2,$dbuser2,$dbpassword2,$dbname2) or die (mysqli_error());

$queryB = "SELECT id,Number,GroupName FROM dbcount01";
$resultB = mysqli_query($conB,$queryB);
while ($objResultB = mysqli_fetch_array($resultB))
 	{
 		$B[]=($objResultB["id"]."|".$objResultB["Number"]."|".$objResultB["GroupName"])."<br>";
	}
mysqli_close($conB);
echo ($B[0].$B[1].$B[2].$B[3].$B[4]);

//   เขียน code
}
?>




Tag : PHP, MySQL









ประวัติการแก้ไข
2018-10-10 23:36:32
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2018-10-10 23:01:51 By : sanchaimax View : 199 Reply : 5
 

 

No. 1



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



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


SELECT concat('GROUP',right(number,1)) as grouppname, count(id) as qty
FROM counttest01
group by right(number,1)






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-10-11 07:07:03 By : Chaidhanan
 


 

No. 2



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



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

ออกแบบมายากจัง JOIN กันยากน่ะครับ
ขนาดผมไม่เก่งเห็นก็ยัง งงงง? เลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-10-11 08:26:11 By : Hararock
 

 

No. 3



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



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

พอจะมีวิธิการเขียน phpใช้ loop เเล้ว count จำ Fieldname ที่ column Number ได้มั้ยครับ ตอนนี้ค่าที่อยู่ใน ตัวแปร Array $A[] กับ $B[] echo ออกมาเเล้วมีค่าประมาณนี้ครับ
1|101A
2|102A
3|103A
4|104A
5|105A
6|106E
7|107B
8|108B
9|109B
10|110C
11|111C
12|112C
13|113C
14|114C
15|115C
16|116D
17|117D
18|118D
19|119D
20|120D
1|A2|GroupA
2|B2|GroupB
3|C2|GroupC
4|D2|GroupD
5|E2|GroupE

ส่วนนี้เป็นcode ที่ผมลอง join แต่อยู่ใน server เดียวกัน
SELECT countnumber02.dbcount01.id,Number,GroupName, GroupName.sumGroup
FROM countnumber02.dbcount01
LEFT JOIN ( SELECT COUNT(*) AS sumGroup, Number.no
FROM ( SELECT SUBSTRING(Number,-1) AS no
FROM countnumber.counttest01 ) Number GROUP BY Number.no)
GroupName ON GroupName.no = countnumber02.dbcount01.Number WHERE Number LIKE '%A%';

ผมอยากรู้ว่ามันเอามาใช้งานร่วมกับ ตัวแปร Array $A[] กับ $B[] ได้มั้ยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-10-11 09:39:29 By : sanchaimax
 


 

No. 4



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



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

ตอบความคิดเห็นที่ : 1 เขียนโดย : Chaidhanan เมื่อวันที่ 2018-10-11 07:07:03
รายละเอียดของการตอบ ::
ถ้าผมต้องต้องการเอาตัวแปร array $A[] และ $B[] มาใช้ด้วยกันเพื่อที่จะ count และ Groupby ออกมาต้องเขียน php เพื่อที่จะให้ loop for count,Groupby ออกมาจะต้องเขียน code แบบไหนครับ
นี่เป็น sclipt mysql ที่ผมเขียน ให้สามารถ join database 2 database แล้ว count,groupby A ออกมาได้เเต่อยู่ server เดียวกัน

SELECT countnumber02.dbcount01.id,Number,GroupName, GroupName.sumGroup
FROM countnumber02.dbcount01
LEFT JOIN ( SELECT COUNT(*) AS sumGroup, Number.no
FROM ( SELECT SUBSTRING(Number,-1) AS no
FROM countnumber.counttest01 ) Number GROUP BY Number.no)
GroupName ON GroupName.no = countnumber02.dbcount01.Number WHERE Number LIKE '%A%';
มันสามารถเอามาใช้ร่วมกับ ตัวแปร array $A[] และ $B[] เเล้วเขียนออกมาเป็นๅphp ให้มันสามารถ count และ Groupby ออกมาได้มั้ยครับ
พี่ @Chaidhanan

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-10-11 11:15:23 By : sanchaimax
 


 

No. 5



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



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


การจัดการข้อมูลต่าง server เพื่อเอาข้อมูล ทั้งหมดมาตรวจ สอบต้องคำนึง เรื่องบริมาณข้อมูลที่ได้ ด้วยนะครับ

คิวรี่ เอาส่วนที่จำเป็นมา แล้วจัดการ เอาส่วนที่อ้างอิง มาจัดการเป็น array และ ตัวสำหรับ นำไปใส่ ใน where clause
ก็ลองศึกษาดูตัวอย่างนะครับ ประยุกต์เอาหน่อย

Code (PHP)
$db = new mysqli( 'host', 'user', 'paswd', 'dbname');
if($db->errno){ die( $db->error); }
$rs = $db->query('select .....') or die($db->error());
$tmp_where = []; $data_tmp = [];
while( $ro = $rs->fetch_object()){
  $tmp_where = $ro->id;
  $data_tmp[$ro->id]= clone $ro;
}

$wh_in = implode(',', $tmp_where);

$db2 = new mysqli( 'host2', 'user', 'paswd', 'dbname');
if($db2->errno){  die( $db2->error); }

$sql = 'select * from tbname where id in ('.$wh_in.')';
$rs1 = $db2->query($sql) or die($db2->error);
while($ro = $rs1->fetch_object){
  print_r( [$ro, $data_tmp[ro->id]);
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-10-11 13:35:00 By : Chaidhanan
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : php mysql ต้องการใช้ loop for เปรียบเทียบข้อมูลที่อยู่ใน array แล้ว count จำนวน Fieldname ที่ต้องการและ groupbyให้อยู่ใน Group
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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: Voake, Comcube, รับทำเว็บไซต์ รับเขียนโปรแกรม

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2019 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 , 08-9968-0655 อัตราราคา คลิกที่นี่