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 > ขอถามเรื่องการคำนวณนะครับ ตามภาพนะครับ ผมใช้ Code แบบบ้านๆนะครับ



 

ขอถามเรื่องการคำนวณนะครับ ตามภาพนะครับ ผมใช้ Code แบบบ้านๆนะครับ

 



Topic : 119764



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



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




SQL1

ตามภาพนะครับ ผมใช้ Code แบบบ้านๆนะครับ


Code (PHP)
<?php		
// Make a MySQL Connection
$query = "SELECT excel, SUM(excel) FROM customer  GROUP BY excel"; 	 
$result = mysql_query($query) or die(mysql_error());
// Print out result
while($row = mysql_fetch_array($result)){
	echo "". $row['']. "  ". $row['SUM(excel)'];
	echo "<br />";
}
?>


ปัญหาก็คือเวลา ใส่ข้อมูลไปแล้ว ตามนี้นะครับ

SQL2

จะเห็นได้ครับ ว่า การคำนวณ Sum ถูกต้องอยู่ครับ แต่จะมีบรรทัดที่คล้ายกับว่า ถ้า + ไม่ได้จะมีค่า 0 หรือค่า - โปรแกรม จะคำนวณมาให้อีกบรรทัดคือค่า 0 จะแก้ยังไงครับไม่ให้มีค่า 0 ขึ้นมาอีกบรรทัดครับอยากให้ค่าที่ Sum ออกมาอย่างเดียวครับ หรือมีวิธีคำนวณแบบอื่นครับ ขอบคุณครับ



Tag : PHP, MySQL









ประวัติการแก้ไข
2015-11-06 11:37:23
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-11-06 11:21:16 By : pissanu8970 View : 970 Reply : 7
 

 

No. 1



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



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

echo "". $row['']. " ". $row['SUM(excel)'];

แก้เป็น
echo "". $row[0]. " ". $row[1];

ที่มันขึ้นบันทัดใหม่ เพราะช่อง td มันแคบไป ถ้าอยากให้ติดกัน
echo $row[0]. "&nbsp;". $row[1];


และก็น่าจะศึกษาการใช้ fetch_array ดูว่ามันให้ค่าอะไรมา
print_r($row);

แล้วลองใช้ mysql_fetch_assoc() ดูบ้าง แล้วลอง
print_r( $row); มาหาข้อแตกต่าง ดูนะครับ

อีกอันก็ mysql_fetch_row() ทดลองดูจะได้เลือกใช้ได้อย่างเหมาะสม






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-06 12:57:44 By : NewbiePHP
 


 

No. 2



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



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


ลองแก้ดูแล้วนะครับ

SQL3

ผลลัพครับ ไม่รู้ว่าแก้ถูกจุดรึเปล่านะครับ

SQL4

แต่มันยังใช่ไม่ได้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-06 13:26:25 By : pissanu8970
 

 

No. 3



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



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


ได้มาระดับหนึ่งแล้วครับ

Code นะครับ อันแน่แค่ เอา BR ของเก่าที่ใส่ไว้ออกครับ

SQL5

ผลลัพนะครับ

SQL6

ยังติดค่า 0 มาด้วยไม่แน่ใจว่าจะแก้ที่อะไรจากที่ผมสงสันคือ โปรแกรมไม่สามารถคำนวณค่าที่น้อยกว่า 1 ได้เลยต้องเป็น 0 เพราะในตารางผมใ่ 0 - 1 สามตัวนี้ครับ ถ้าเป้นเลข 1 โปรแกรมนับให้ครับ ถ้าเป็นตัวอืนไม่นับครับ เพราะลอง 3 บรรทัดครับ อันแรกใส่ 1 1 1 โปรแกรมคำนวณให้เป็น 3 อันที่ 2 ใส่ 1 0 1 โปรแกรมคำนวณมาให้ 0 2 แต่จะมี 0 ติดมาด้วยครับ รบกวนผู้รู้ด้วยครับ

โคดผมให้ไปไม่หมดครับ


ประวัติการแก้ไข
2015-11-06 14:54:14
2015-11-06 15:59:13
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-06 14:49:08 By : pissanu8970
 


 

No. 4



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



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

ผมว่าอย่าหวงโค๊ตนักเลยครับ เอามันมาทั้ง ลูปเลยเดีกว่า เอามาแค่บางส่วน แน่ใจเหรอครับว่า เอามาถูก
โค๊ดตัวเองยังเขียนผิด แล้วไม่นึกหรือครับว่าจะเอามาแสดงถูกต้อง

โค๊ดนิดเดียว มันจะออกอะไรมาได้เยอะแยะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-06 14:51:37 By : NewbiePHP
 


 

No. 6



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



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

ที่มันเป็น 2 บันทัด เพราะมันมีข้อมูล 2 row หรือเปล่า ทดสอบเอาโค๊ดไปรัน ใน phpmyaddmin ดูก่อนครับ

SELECT excel, SUM(excel) se FROM customer GROUP BY excel
เอาแค่คำสั่งข้างบน ไปรันใน phpmyadmin ครับ เชื่อว่า ต้องมี 2 รายการ

ปล. ข้างล่างนี้เป็นตัวอย่างการเขียนโปรแกรม เอาของเจ้าของกระทู้มา optimize
Code (PHP)
<?php
$ebits = ini_get('error_reporting'); 
error_reporting($ebits ^ E_NOTICE);
// ย้ายมาไว้ตอนต้นโปรแกรม ใช้ครั้งเดียวทั้งโปรแกรม
///////////////////////////////////////////////////////////////////////////////////////////////
session_start();
///////////////////////////////////////////////////////////////////////////////////////////////
if( ! isset($_SESSION['UserID'])){ echo "Please Login!"; exit(); }
if($_SESSION['Status'] != "USER") { echo "This page for User only!"; exit(); }
///////////////////////////////////////////////////////////////////////////////////
$db=new mysqli("localhost","root","root","member"); 
//ย้ายมาใช้ mysqli ได้แล้วครับ หัดใหม่ก็ใช้ของใหม่ไปเลย และ แบบ oop ใช้ง่าย ลองดูครับ
$db->set_charset("utf-8"); 
// set charset ภาษาไทย ไว้หลังจาก connect ไม่ใช่ว่าไว้ตรงไหนก็ได้ คิวรี่ก่อน set ที่คิวรี่มาก็เสีย
///////////////////////////////////////////////////////////////////////////////////
$strSQL = "SELECT * FROM member WHERE UserID = '".$_SESSION['UserID']."' ";
$objQuery = $db->query($strSQL) or die ($strSQL.'<br>'.$db->error); // กำลังเรียนรู้อยาลืมใช้ bug report ครับ 
$objResult = $objQuery->fetch_assoc(); // fetch_array เลิกใช้ได้แล้วครับ มันให้ข้อมูลซ้ำซ้อน เปลืองเมมโมรี่
///////////////////////////////////////////////////////////////////////////////////
$del_id = isset($_REQUEST['del_id']) ? $_REQUEST['del_id'] : ''; 
// เครื่องหมาย @  ไว้หน้า function เป็นการปิดการแสดง error message กำลังศึกษาเรียนรู้อย่าเพิ่งใช้ครับ
if( $del_id){ 
	// ตรวจสอบตัวแปรด้วยว่ามีหรือเปล่า จะได้ไม่ error
	$sql_del = "delete from customer where id = $del_id";
	$db->query($sql_del) or die($db->error);
}
////////////////////////////////////////////////////////////////////////////////////
/// อย่าลื่ม header html ใส่เอาไว้ให้เป็นนิสัย มันมีผลกับการทำงาน ของ browser กำหนดวิธีการเรียกใช้คำสั่ง
/// ซึ่งต้องศึกษาอีกเยอะครับ
?>
<!doctype html>
<html>
<head>
<title>Pissanu Pongoubon Test</title>
<meta charset="utf-8">
<link  rel="stylesheet" href="/assessory/css/blabla.css"><!-- เอา cssไปไว้ในไฟล์ -->
<!-- /////////////////////////////////////// -->
<!-- javascript พยายามเอามาไว้ส่วนหัว แยกส่วนการทำงานให้ชัดเจน -->
<!-- /////////////////////////////////////// -->
<script language="javascript">
function printpr(){
	var OLECMDID = 7;
	/* OLECMDID values:
	* 6 - print
	* 7 - print preview
	* 1 - open window
	* 4 - Save As
	*/
	var PROMPT = 1; // 2 DONTPROMPTUSER
	var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
	document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
	WebBrowser1.ExecWB(OLECMDID, PROMPT);
	WebBrowser1.outerHTML = "";
}
</script>
</head>
<!-- ///////////////////// ส่วนของ body //////////////////////////// -->
<body>
<table width="2542" height="100" border="1">
<tr>
	<td width="200" height="100">
		<table width="228" border="1" style="width: 250px">
		<tr><td width="84"> &nbsp;Username</td><td width="128"><?php echo $objResult["Username"];?></td></tr>
		<tr><td height="23"> &nbsp;Name</td><td><?php echo $objResult["Name"];?></td></tr>
		</table>
		<a href="edit_profile.php">Edit</a><br />
		<a href="logout.php">Logout</a>
	</td>
	<td width="2326">&nbsp;</td>
</tr>
</table>
ยังมีอีก แต่หิวข้าวแล้ว ถ้ายังไม่นอนจะมาดูต่อให้
โค๊ดไม่เป็นระเบียบ อ่านยาก เข้าใจยาก แก้ไขยาก นะครับ แม้แต่ตัวเองเขียน ห่างไปซักเดือนกลับมาไม่รู้เรื่องแน่นอน


ประวัติการแก้ไข
2015-11-06 18:14:40
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-06 17:55:35 By : NewbiePHP
 


 

No. 7



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



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


แล้วทำให้เหลือ 1 row ทำไงหรอครับ ได้แล้วครับ ขอบคุรณครับ

แล้วถ้าจะเอาค่า Sum มาทำงานต่อโดยการนำมาลบ ออก ต้องเขียนยังไงหรอครับ
SQL1


ประวัติการแก้ไข
2015-11-09 08:22:01
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-09 08:09:49 By : pissanu8970
 


 

No. 8



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



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


รบกวนถามต่อนะครับ ถ้าต้องการค่า Sum มที่ได้นำมาทำงานต่อ โดยการถูก ลบ ออกต้องเขียนยังไงหรอครับ

SQL1
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-09 08:20:41 By : pissanu8970
 

   

ค้นหาข้อมูล


   
 

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