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

HOME > PHP > PHP Forum > php for มาแล้วค้นหาข้อมุล นำข้อมูลมาเทียบกันยังครับ รบกวนเทพๆหน่อยครับ



 

php for มาแล้วค้นหาข้อมุล นำข้อมูลมาเทียบกันยังครับ รบกวนเทพๆหน่อยครับ

 



Topic : 116206



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



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




Code (PHP)
$inputBalance = ""; // คือจำนวนที่ใช้ประกอบ
for($set=0;$set<count($inputProductID);$set++) {
	if($inputProductID[$set]<>"") {
		$chkSet = assoc("select productid,categories from product where productid='".$inputProductID[$set]."' ");
			 if($chkSet['categories']==1) {
				echo '<hr>categories 1<br>';
 					$loadDbAmountSQL = "select * from product left join product_material  on productid=material_pid 
					left join product_size on material_mpid=sizeid	where productid='".$inputProductID[$set]."' order by material_id desc";
					$loadDBAmountQuery = mysql_query($loadDbAmountSQL);
					while($loadDbAmount = mysql_fetch_assoc($loadDBAmountQuery)) {
						// $loadDbAmount['amount'] จำนวนคงเหลือในฐานข้อมูล
//เช็ครอบที่ 1 ว่าอุปกรณ์เพียงพอหรือไม่ เช็คจากค่าที่ส่งมา  (กรณีอุปกรณ์ที่ไม่เหมือนกัน)
if($loadDbAmount['amount']<$inputBalance[$set]) {	
echo '<script>alert("เก้าอี้ '.$loadDbAmount['product_code'].' อุปกรณ์ไม่พอประกอบ กรุณาตรวจสอบอีกครั้ง"); history.go(-1);</script>'; exit;
}
						 
$selAmount = $loadDbAmount['amount'] - $inputBalance[$set];
					 	   
echo "sizeid=$loadDbAmount[product_code] &nbsp;&nbsp;&nbsp;sizeid=$loadDbAmount[sizeid] &nbsp;&nbsp;&nbsp;&nbsp;จำนวนคงเหลือ : $loadDbAmount[amount]&nbsp;&nbsp;&nbsp;ใช้ประกอบ : $inputBalance[$set]&nbsp;&nbsp;&nbsp;เหลือ $selAmount&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
						  
						// อัพเดทจำนวนคงเหลือ หลังหักอุปกรณ์ประกอบ
						  $updateAmount = "update product_size set amount='".$selAmount."' where sizeid='".$loadDbAmount['sizeid']."' ";
						  print_r($updateAmount);
						  echo "<br>";
					} //end while
			 } else {
				 // ชุดคำสั่งอัพเดตข้อมูลแบบธรรมดา เช่น อะไหล่อุปกรณ์
				 echo 'normal';
			 } //end if cate1
		 
		} //เช็คค่า เฉพาะค่าที่มีมากกว่า 0
	} //for($set=0;$set<count($inputProductID);$set++) {


ได้ผลตามภาพ
for
1. คือค่าที่ผมส่งมาคือ productid 233 และ 232 (อันนี้ผ่าน)
2. หลังจากส่งมานั้นให้หาข้อมูลอุปกรณ์ว่ามีตัวไหนบ้าง (อันนี้ผ่าน)
3. ผมส่งมา 2 ตัว ซึ่งมีอุปกรณ์ sizeid ที่เหมือนระหว่าง product 232 และ 233 ซึ่ง 233 จะต่างกันในวงเล็บสีแดง
4. ผมกำลังหาว่า ถ้า 233 และ 232 ถ้าใช้อุปกรณ์ที่เหมือนกัน อุปกรณ์นั้นจะต้องหักลบกันไปเรื่อยๆ ตามภาพด้านล่างครับ
(อันนี้ผมยังไม่ได้ อัพเดทฐานข้อมูลครับ จะเช็คก่อนว่ามีอุปกรณ์เพียงพอต่อการใช้งานหรือไม่)
for2
คือยอดคงเหลือจะต้องเหลือ 50 ซึ่งหักจากด้านบน ถ้าอุปกรณ์ไม่เหมือนกันก็ไม่ต้องหัก ทำงานปกติครับ

เขียนยังดีครับ T_T



Tag : PHP, HTML/CSS







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-05-03 16:04:50 By : ilikeit View : 773 Reply : 1
 

 

No. 1



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



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

ถ้าเก็บในฐานข้อมูลก่อนจะไม่ยุ่งยาก
แต่หากต้องการเช็คก่อนบันทึก สร้างตัวแปรเก็บยอดของแต่ละอุปกรณ์เพื่อนำไปเปรียบเทียบ (curBalance) ประมาณนี้
Code (PHP)
$inputBalance = ""; // คือจำนวนที่ช้ประกอบ
$curBalance = []; // เก็บยอดคงเหลือตามอุปกรณ์
for($set=0;$set<count($inputProductID);$set++) {
	if($inputProductID[$set]<>"") {
		$chkSet = assoc("select productid,categories from product where productid='".$inputProductID[$set]."' ");
			 if($chkSet['categories']==1) {
				echo '<hr>categories 1<br>';
 					$loadDbAmountSQL = "select * from product left join product_material  on productid=material_pid 
					left join product_size on material_mpid=sizeid	where productid='".$inputProductID[$set]."' order by material_id desc";
					$loadDBAmountQuery = mysql_query($loadDbAmountSQL);
					$SizeBalanceIdx = 0;
					while($loadDbAmount = mysql_fetch_assoc($loadDBAmountQuery)) {
						// $loadDbAmount['amount'] จำนวนคงเหลือในฐานข้อมูล
//เช็ครอบที่ 1 ว่าอุปกรณ์เพียงพอหรือไม่ เช็คจากค่าที่ส่งมา  (กรณีอุปกรณ์ที่ไม่เหมือนกัน)
if($loadDbAmount['amount']<$inputBalance[$set]) {	
echo '<script>alert("เก้าอี้ '.$loadDbAmount['product_code'].' อุปกรณ์ไม่พอประกอบ กรุณาตรวจสอบอีกครั้ง"); history.go(-1);</script>'; exit;
}

// แสดงจำนวนคงเหลือหลังหัก ออกจากค่าใน product อื่น
if ($set == 0) {
    $selAmount = $loadDbAmount['amount'] - $inputBalance[$set];
    echo "sizeid=$loadDbAmount[product_code] &nbsp;&nbsp;&nbsp;sizeid=$loadDbAmount[sizeid] &nbsp;&nbsp;&nbsp;&nbsp;จำนวนคงเหลือ : $loadDbAmount[amount]&nbsp;&nbsp;&nbsp;ใช้ประกอบ : $inputBalance[$set]&nbsp;&nbsp;&nbsp;เหลือ $selAmount&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
} else {
    foreach($curBalance as $tmp1) {
        if ($tmp1[size] == $loadDbAmount[sizeid]) {
            $selAmount = $tmp1[balance] - $inputBalance[$set];
        }
    	echo  . ', ' . $tmp1[balance] . '<br>';
    }
    echo "sizeid=$loadDbAmount[product_code] &nbsp;&nbsp;&nbsp;sizeid=$loadDbAmount[sizeid] &nbsp;&nbsp;&nbsp;&nbsp;จำนวนคงเหลือ : $selAmount&nbsp;&nbsp;&nbsp;ใช้ประกอบ : $inputBalance[$set]&nbsp;&nbsp;&nbsp;เหลือ $selAmount&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
}						 
					 	   
						  
						// อัพเดทจำนวนคงเหลือ หลังหักอุปกรณ์ประกอบ
						  $updateAmount = "update product_size set amount='".$selAmount."' where sizeid='".$loadDbAmount['sizeid']."' ";
						  print_r($updateAmount);
						  echo "<br>";
						  
						  // update $curBalance[]
						  if ($set == 0) {
						    $curBalance[$SizeBalanceIdx]['size'] = $loadDbAmount['sizeid'];
						    $curBalance[$SizeBalanceIdx]['balance'] = $selAmount;
						  } else {
						    $sizeIdx = 0;
						    foreach($curBalance as $tmp2) {
						        if ($tmp2[size] == $loadDbAmount[sizeid]) {
						            //$curBalance[$sizeIdx]['size'] = $loadDbAmount['sizeid'];
						            $curBalance[$sizeIdx]['balance'] = $selAmount;
						            break;
						        }
						        $sizeIdx++;
						    }
						  }
						  
						  $SizeBalanceIdx++;
					} //end while
			 } else {
				 // ชุดคำสั่งอัพเดตข้อมูลแบบธรรมดา เช่น อะไหล่อุปกรณ์
				 echo 'normal';
			 } //end if cate1
		 
	} //เช็คค่า เฉพาะค่าที่มีมากกว่า 0
} //for($set=0;$set<count($inputProductID);$set++) {





ทดสอบแค่ Logic โค้ดรวมไม่ได้ลอง






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-06-03 22:34:43 By : PhrayaDev
 

   

ค้นหาข้อมูล


   
 

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