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

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

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
|
 |
 |
 |
 |
Date :
2018-10-10 23:01:51 |
By :
sanchaimax |
View :
1660 |
Reply :
5 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ออกแบบมายากจัง JOIN กันยากน่ะครับ
ขนาดผมไม่เก่งเห็นก็ยัง งงงง? เลย
|
 |
 |
 |
 |
Date :
2018-10-11 08:26:11 |
By :
Hararock |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
พอจะมีวิธิการเขียน 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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
การจัดการข้อมูลต่าง 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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|