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

HOME > PHP > PHP Forum > ช่วยแนะนำวิธีการจับคู่โดยหาผลรวมจากรายได้หน่อยครับ ขอบคุณครับ



 

ช่วยแนะนำวิธีการจับคู่โดยหาผลรวมจากรายได้หน่อยครับ ขอบคุณครับ

 



Topic : 118236



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



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




ช่วยแนะนำทีครับ ผมต้องการดึงรายได้จากตารางมาจับคู่กัน เช่น

----------------------------
กลุ่มหลัก
Z = 100000

-----------------------------
สมาชิกกลุ่ม ก.
A = 10000
B = 15000
C = 20000
D = 25000
E = 30000
F = 35000

------------------------------
สมาชิกกลุ่ม ข.
G = 14000
H = 28000
I = 35000


สิ่งที่ต้องการคือ นำรายได้จากกลุ่ม ก. มาจ่ายให้กลุ่ม ข. ถ้าขาดหรือเกินให้คำนวนกลับ กลุ่มหลัก
เช่น
G มีรายได้ 14000 ให้จับคู่กับ B(15000)เหลือ 1000 ให้นำเข้ากลุ่มหลัก
I มีรายได้ 35000 ให้จับคู่กับ A(10000),D(25000)
H มีรายได้ 28000 ให้จับคู่กับ E(30000)เหลือ 2000 ให้นำเข้ากลุ่มหลัก

โดยการจับคู่จะคำนวนจากรายได้และการจับคู่ต้องไม่ซ้ำกัน

ขอบคุณครับ



Tag : PHP, MySQL









ประวัติการแก้ไข
2015-08-06 09:14:00
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-08-06 09:11:54 By : hnu25 View : 982 Reply : 5
 

 

No. 1



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



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


เงียบๆ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-06 15:24:12 By : hnu25
 


 

No. 2



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



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


โค้ดไม่มี มีแต่แนวคิด

เอาจำนวนทั้งหมด มาเรียงกัน
ตามลำดับ
จากนั้นก็จับคู่ที่ติดกัน

เอาจำนวน มากกว่าตั้ง เอาจำนวนที่น้อยกว่าลบ
แล้วก็จะได้ผลลัพธ์พร้อมคู่

// เผ่นแปป แค่มาช่วยดัน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-06 15:32:46 By : CasanovaKung
 

 

No. 3



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



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


<input value="ID G,H,I">

ถ้าผมต้องการเอาไอดีของกลุ่ม ข G,H,I ไปคำนวนหาค่าจากกลุ่ม ก พร้อมกันได้ไหม ต้องทำยังไง
เมื่อส่งค่ามาจาก <input value="ID G,H,I">
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-06 17:13:15 By : hnu25
 


 

No. 4



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



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


ตอนนี้ผมเลือก ID ที่ผมต้องการได้แล้วครับ

Code
$E = 7000; $ran1 = "select * from tb_ph where ph_price BETWEEN '5000' AND '7000'"; $ran1query = mysql_query($ran1); while($ran1result = mysql_fetch_array($ran1query)){ $calph = $ran1result["ph_price"]; $phuser = $ran1result["user_name"]; echo $calph; echo $phuser; }


A = 5000
ฺB = 5000
C= 5000
D = 10000

เลือกได้ A B C

แต่ผมอยากได้ ID ที่รวมกันแล้วอยู่ระหว่างค่า 7000-10000 คือเอาแค่ A กับ B รวมกันแล้วได้ 10000 หรือเลือกแค่ D
และเอา ID ที่ได้บันทึกลงฐานข้อมูล


ประวัติการแก้ไข
2015-08-06 20:48:10
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-06 20:43:12 By : hnu25
 


 

No. 5



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



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

ไม่รู้จะใช้ได้หรือเปล่า เดาจากที่ จขกท บอก ไม่เข้าใจหลายที่
Code (PHP)
<?php
$a = array('A' => 10000,'B' => 15000,'C' => 20000,'D' => 25000,'E' => 30000,'F' => 35000,'M'=>3000);
$b = array( 'G' => 14000,'H' => 28000,'I' => 35000);
$c = array(); $d = array();
function pre_array($s){
	$l = strlen(max($s)); $t = array();
	foreach($s as $k=>$v){ $p='a'.str_pad($v, $l, '0',STR_PAD_LEFT); $t[$p] = array('id'=>$k, 'value'=>$v); }
	return $t;
}
function sort_ab($s){
	$t = array(); foreach($s as $k=>$v){ $t[]=$k;} sort($t); return $t;
}
function search_match($v, $ar, $vl, &$cur){
	$min = 0; $i=count($ar);
	while($i){
		$i--; $k=$ar[$i];
		$dif = ($vl[$k]['value'] - $v); 
		if( $dif==0 ){$cur=$k; break;}
		if( ($dif>0) && (!$min || $dif<$min ) ){ $min = $dif; $cur = $k;}
	} return ($cur!='');
}
function set_c($a, $b, &$c){
	$x = sort_ab($a); $y = sort_ab($b); $i=count($x);
	while($i){
		$i--; $m=$x[$i]; $n=''; $v=$a[$m]['value'];
		if(search_match($v, $y, $b, $n)){
			if(!isset($c[$n])) $c[$n]=array(); 
			$c[$n][]=array($a[$m]['id'], $v );
			$b[$n]['value'] -= $a[$m]['value'];
		}
	}
}
$x=pre_array($a); $y=pre_array($b);
set_c( $x, $y, $c);
echo '<table border=1>';
foreach($c as $k=>$v){
	$i=0;
	foreach($v as $m=>$vl){
		echo '<tr><td>'.(!$i? $y[$k]['id'] : '').'</td><td>'.(!$i? $y[$k]['value']:'').'</td>',
			'<td>'.$vl[0].'</td><td>'.$vl[1].'</td></tr>';
		$i++;
	}
}
echo '</table>';

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-08-07 20:50:34 By : NewbiePHP
 

   

ค้นหาข้อมูล


   
 

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