ทำยังไงดีคับ ผมใช้คำสั่งนี้หาผลรวมของฟิวส์แล้ว มันดันออกมาเหมือนกันทุกอันเช่น
SELECT SUM(cost) as sum_cost, id, name FROM paydown a
LEFT JOIN member b ON a.id = b.id
GROUP BY a.id
a b นี้คืออะไรเหรอคับ ของตาราง member กับ paydown อ่ะคับ
Date :
2009-05-25 15:48:23
By :
backship
มันขึ้น error แบบนี้อ่ะคับ
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\project\admin\paydown.php on line 20
โค้ดคับ
<?php
include"config.inc.php";
$sql="SELECT * FROM member,transac,tb_room,paydown WHERE member.uID=transac.uID AND transac.uID=paydown.uID AND tb_room.room_no=transac.room_id ";
mysql_query("set names tis620");
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$sql2="SELECT SUM(paydown) AS paysum, uID FROM paydown LEFT JOIN transac ON paydown.uID = transac.uID GROUP BY paydown.uID ";
$result2=mysql_query($sql2);
$row2=mysql_fetch_array($result2);
while ( $row= mysql_fetch_array ( $result))
{
echo "<br>ห้อง :". ($row['uUSER']) ;
echo " ชื่อ :". ($row['uNAME']) ;
echo " ราคาห้อง :".number_format($row['cost'])."บาท" ." ราคาดาวน์ :".number_format($row['cost']*0.1)."บาท";
echo" <br>ชำระเงินไปแล้ว :".number_format($row2[paysum])."บาท";
}
?>
Date :
2009-05-25 16:06:19
By :
backship
ช่วยทีคับ งงมา 3 วันแล้ว
Date :
2009-05-25 16:36:36
By :
backship
echo มาแล้วได้ค่าเป็นแบบนี้คับ สงสัยคงจะไม่ได้แน่เลย ฮือๆๆ
SELECT SUM(payvalue) AS paysum, b.uID FROM paydown a LEFT JOIN transac b ON a.uID = b.uID GROUP BY a.uID
Date :
2009-05-25 17:01:11
By :
backship
กำ
echo แล้วก็เอาไป run ที่ phpmyadmin ด้วยดิคับ
Date :
2009-05-25 17:03:34
By :
nut_t02
รันยังไงอ่ะคับ ตอนนี้ผมใช้ phpmyadmin 2.5.10 อยู่
Date :
2009-05-25 17:07:08
By :
backship
ก็ตรง tab ด้านบน tab ที่สาม SQL อ่ะคับ
กดไป แล้วใส่ sql ที่ echo ออกมาลงไป แล้วกดให้มัน query
Date :
2009-05-25 17:39:11
By :
nut_t02
งงคับ ผมมือใหม่อ่ะคับ ช่วยแจงให้เห็นภาพหน่อยคับ
Date :
2009-05-25 17:47:31
By :
backship
เอิ่ม
ตามรูปแระกัน
1. คือ click ที่ชื่อ db ของคุณ
2. เลือกที่ tab SQL
3. ใส่ sql ที่ echo ออกมาได้ลงในช่อง
แล้วก็กดปุ่มที่ข้อ 4
ลองหัดเรียนรู้ด้วยตัวเองเพิ่มขึ้นอีกนิดนึงนะคับ
ต่อไปเราจะได้มีประสบการณ์สูง นะคับ
Date :
2009-05-25 18:06:34
By :
nut_t02
ขอบคุณคับ
Date :
2009-05-25 21:53:53
By :
backship
ได้หรือยังอ่าคับ
Date :
2009-05-26 07:33:55
By :
nut_t02
ผลลัพธ์มันก็ออกมาถูกต้องนะคับ แต่ทำไมทำใน dream มันไม่ออกอ่ะ งงงงง
Date :
2009-05-26 09:39:34
By :
backship
ทำยังไงดีคับคุณ nut_t02
Date :
2009-05-26 14:22:06
By :
backship
คุณครับ สนใจเปลี่ยนเป็น Code บ้านๆมั้ยครับ เดี๋ยวผมเขียนให้
Date :
2009-05-26 14:32:31
By :
nongjen
ลองแบบนี้ดูนะคับ ว่าได้ป่าว
Code (PHP)
<?php
include"config.inc.php";
$sql = "SELECT a.*, b.*, c.*, d.*, SUM(paydown) AS paysum ".
"FROM paydown a ".
"LEFT JOIN transac b ON b.uID = a.uID ".
"LEFT JOIN member c ON c.uID = b.uID ".
"LEFT JOIN tb_room d ON d.room_no = b.room_id ".
"GROUP BY paydown.uID ";
$result = mysql_query($sql);
while( $row = mysql_fetch_assoc($result) )
{
echo "<br>ห้อง : ".$row['uUSER']." ";
echo "ชื่อ : ".$row['uNAME']." ";
echo "ราคาห้อง : ".number_format($row['cost'])."บาท ราคาดาวน์ : ".number_format($row['cost']*0.1)." บาท ";
echo"<br>ชำระเงินไปแล้ว : ".number_format($row['paysum'])." บาท";
}
?>
Date :
2009-05-26 15:11:17
By :
nut_t02
Code (PHP)
<?php
//ผมลองแล้วออก จากโจทย์
1 200 ----->ของนาย เอ
1 100 ----->ของนาย เอ
2 400 ----->ของนาย บี
id 1 300
id 2 400
Select distinct paydown.id, Sum(paydown.cotst), member.id, member.name From paydown Inner Join member ON paydown.id = member.id Group By paydown.id, member.id, member.name
?>
Date :
2009-05-26 15:29:04
By :
nongjen
Code (PHP)
<?php
// หรือเต็มยศ
$sql = "Select distinct
paydown.id,
Sum(paydown.cotst) as sum_cost,
member.id,
member.name
From paydown
Inner Join member ON paydown.id = member.id
Group By
paydown.id,
member.id,
member.name";
$result = mysql_query($sql);
while( $row = mysql_fetch_assoc($result) )
{
echo "ชื่อ : ".$row['name']." ";
echo "จ่ายแล้วทั้งหมด : ".$row[sum_cost])."บาท";
}
?>
Date :
2009-05-26 15:38:50
By :
nongjen
ขอบคุณทุกท่านมากคับ จะลองดูคับ
Date :
2009-05-26 16:08:40
By :
backship
<?php
include"config.inc.php";
$sql = "SELECT a.*, b.*, c.*, d.*, SUM(payvalue) AS paysum ".
"FROM paydown a ".
"LEFT JOIN transac b ON b.uID = a.uID ".
"LEFT JOIN member c ON c.uID = b.uID ".
"LEFT JOIN tb_room d ON d.room_no = b.room_id ".
"GROUP BY paydown.uID ";
$result = mysql_query($sql);
while( $row = mysql_fetch_assoc($result) )
{
echo "<br>ห้อง : ".$row['uUSER']." ";
echo "ชื่อ : ".$row['uNAME']." ";
echo "ราคาห้อง : ".number_format($row['cost'])."บาท ราคาดาวน์ : ".number_format($row['cost']*0.1)." บาท ";
echo"<br>ชำระเงินไปแล้ว : ".number_format($row['paysum'])." บาท";
}
?>
ผมลองทำตามคุณ nut_t02 แล้วก็ยังไม่ได้อ่ะคับ ช่วยด้วยคับผม
มันขึ้น error ดังนี้คับ
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\project\admin\testshow.php on line 52
แต่ของคุณ nongjenny ทำได้แล้วคับ แต่ join ได้แค่ 3 ตาราง ผมลองเพิ่มไปอีกตารางคือ tb_room.room_no =transac.room_id แล้วมันไม่ได้อ่ะคับ ทำไงให้จอยได้ 4 ตารางอ่ะคับ
ปล. ตาราง transac.room_id กับ tb_room.room_no ค่าเหมือนกันนะคับ แต่ชื่อฟิวส์ไม่เหมือนกัน
ขอบคุณคับ
Date :
2009-05-28 17:00:45
By :
backship
เอาชื่อตารางมาครับ เดี๋ยวจอยให้ กี่ตารางก็จะจอยให้
Date :
2009-05-28 17:08:52
By :
nongjen
เอาชื่อตารางมาครับ เดี๋ยวจอยให้ กี่ตารางก็จะจอยให้
เอาชื่อตารางมา แล้วบอกด้วยว่าจะให้ผลลัพท์ออกยังไง
Date :
2009-05-28 17:10:22
By :
nongjen
นี่ error ใน sql คับ
Date :
2009-05-28 17:11:10
By :
backship
4 ตาราง คับ
a. paydown.uID
b. member.uID
c. tb_room.room_no
d. transac.uID, transac.room_id
อยากให้
a join b
b join d.uID
d.room_id join c
Date :
2009-05-28 17:23:58
By :
backship
จาก error มันบอกว่า
"Unknown column 'paydown.uID' in group statement"
แปลได้ว่า
"ไม่รู้จักคอลัม 'paydown.uID' ตรงคำสั่ง group"
ความหมายก็คือ
ตรง GROUP BY paydown.uID
ให้เปลี่ยนเป็น GROUP BY a.uID
คับ
ลองดูอีกที
Date :
2009-05-28 17:44:14
By :
nut_t02
ขอตารางเต็มๆ หน่อยได้ป่ะ ถ้าได้ จอยให้ไม่ถึง 30 วินาที
Date :
2009-05-28 18:02:09
By :
nongjen
Unknown column 'paydown.uID' in group statement ตอนจอยกัน ตาราง จอยกันไม่ได้เพราะ มัน เข้ากันไม่ได้ มันก็เลยสร้าง ตาราง จำลองที่จะlink จ้อมูลกันไม่ได้ มันก็เลยบอกว่าไม่รู้จัก น่ะ
Date :
2009-05-28 19:04:15
By :
nongjen
ถ้างั้นจะลองดูอีกทีครับ
Date :
2009-05-28 21:21:07
By :
backship
ว่าไงครับ จอยกันได้ยัง
Date :
2009-05-28 23:00:18
By :
nongjen
พรุ่งนี้รู้ผลคับ วันนี้ขอนอนก่อนนะคับ เพลียจากการดูบอลเมื่อคืน.....
Date :
2009-05-28 23:11:55
By :
backship
เอาโครงสร้างตารางมาก็ได้ จะได้จอยให้ กี่ตารางก็ได้ครับ
Date :
2009-05-28 23:17:17
By :
nongjen
ขอบคุณทุกคนมากคับ แก้ได้แล้วครับ
เปลี่ยนจาก paydown.uID เป็น a.uID ก็ได้แล้วครับ ขอบคุณมากจริงๆคับ
Date :
2009-05-29 09:19:39
By :
backship
ถามอีกข้อคับ เราจะใส่ order by filed ตรงไหนดีคับ
$sql = "SELECT a.*, b.*, c.*, d.*, SUM(payvalue)AS paysum ".
"FROM paydown a ".
"LEFT JOIN transac b ON b.uID = a.uID ".
"LEFT JOIN member c ON c.uID = b.uID ".
"LEFT JOIN tb_room d ON d.room_no = b.room_id ".
"GROUP BY a.uID";
Date :
2009-05-29 10:04:26
By :
backship
$sql = "SELECT a.*, b.*, c.*, d.*, SUM(payvalue)AS paysum ".
"FROM paydown a ".
"LEFT JOIN transac b ON b.uID = a.uID ".
"LEFT JOIN member c ON c.uID = b.uID ".
"LEFT JOIN tb_room d ON d.room_no = b.room_id ".
"WHERE 1=1 ".
"GROUP BY a.uID ".
"ORDER BY d.room_no ASC";
เป็นต้นคับ
Date :
2009-05-29 10:37:07
By :
nut_t02
"WHERE 1=1 ".
ไว้ทำอะไรหรือคับ
พอดีผมไม่ได้ใส่ลงไป ใส่แต่ order by บรรทัดล่างสุด มันก็ได้ผลลัพธ์ที่ต้องการนะคับ
อยากรู้ว่าใส่เพื่ออะไรคับ
Date :
2009-05-29 10:53:26
By :
backship
where มันเป็นเงื่อนไข ถ้าต้องการข้อมูลที่มีข้อจำกัด ก็จะต้องใช้where เข้าช่วย
ต้องการข้อมูล ของ คนที่มี id = 1 เท่านั้น ก็จะได้
select * from table where id =1
ประมาณนี้อะ
Date :
2009-05-29 14:16:11
By :
ail2geal2
Load balance : Server 00