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 > มีปัญหาเรื่องการคำนวณราคาสินค้าของตะกร้าสินค้าครับ รบกวนพี่ๆช่วยหน่อยครับ



 

มีปัญหาเรื่องการคำนวณราคาสินค้าของตะกร้าสินค้าครับ รบกวนพี่ๆช่วยหน่อยครับ

 



Topic : 119149



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



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




ไฟล์ cart.php
Code (PHP)
<form action="" method="post" enctype="multipart/form-data">
     
                		<table align="center" width="800" bgcolor="#CCCCCC">
                        
                        	<tr>
                            		<td colspan="5"><h2 id="titleall">ตะกร้าสินค้าของคุณ</h2></td>
                            </tr>
                            <tr align="center" >
                            
                            	<th>ลบ</th>
                                <th>สินค้า</th>
                                <th>จำนวน</th>
                                <th>ราคา</th>
                            </tr>
                            
                        <?php 
					
							
						$total = 0;
						global 	 $con;
		
						$ip = getIp();
	
						$sel_price = "Select * From fitup_cart where fitup_c_ip_add='$ip'";
	
						$run_price = mysqli_query($con, $sel_price);
	
						while ($p_price=mysqli_fetch_array($run_price)){
	
						$pro_id = $p_price['fitup_c_id'];
		
						$pro_price = "Select * From fitup_products where fitup_pd_id='$pro_id'";
		
						$run_pro_price = mysqli_query($con, $pro_price);
		
						while ($pp_price=mysqli_fetch_array($run_pro_price)){
			
						$product_price = array($pp_price['fitup_pd_price']);
						$product_title = $pp_price['fitup_pd_title'];
						$product_img = $pp_price['fitup_pd_img'];
						$single_price = $pp_price['fitup_pd_price'];
						
						$values = array_sum($product_price);
						
						$total += $values;
									
						
						?>
                        
                        <tr align="center">
                        		 <td><input type="checkbox" name="remove[]" value="<?php echo $pro_id; ?>"/></td>
                                
                                <td align="left"><?php echo $product_title; ?><br />
                                
                              	
                                
                                
                                </td>
                                <td><input type="number" class="InputNum" name="qty" value="<? echo $_SESSION['fitup_c_quantity'];?>"  size="3" min="1" max="5" /></td>
                               
                                <?php 
								
								
								if(isset($_POST['update_qty'])) {
																								
									$qty = $_POST['qty'];	
									
									$update_qty = "update fitup_cart set fitup_c_quantity='$qty'";
									
									$run_qty = mysqli_query($con, $update_qty);
									
									$_SESSION['fitup_c_quantity']=$qty;
									$total =$total*$qty;
									
								}
								
								
								 ?>
                                
                                
                                <td><?php echo $single_price; ?> บาท</td>
                                
                        </tr>
                        
                       
                        
                        
                        <?php } } ?>
                        
                         <tr align="right">
                         	<td colspan="4"><b>ราคาทั้งหมด: <?php echo $total; ?> บาท  </b></td>
                       
                         </tr>
                           
                         <tr align="center">
                         
                         		<td colspan="2"><input type="submit" name="update_cart" value="ลบสินค้า"/> </td>
                                <td><input type="submit" name="continue" value="ซื้อสินค้าต่อ"/> <input type="submit" name="update_qty" value="คำนวณราคา"/>  </td>
                                <td><button><a href="checkout.php" style="text-decoration:none; color:black;">checkout</a></button> </td>
                                
                         </tr>
                        
                        </table>
                
                </form>
                
                <?php 
				
				
				
					
					
					$ip = getIp();
					
					if(isset($_POST['update_cart'])) {
																								
						foreach ($_POST['remove'] as $remove_id) {
							
						$delete_product = "delete from fitup_cart where fitup_c_id='$remove_id' AND fitup_c_ip_add='$ip'";	
						
						$run_delete = mysqli_query($con, $delete_product);
									
						if ($run_delete) {
						
						echo "<script>window.open('cart.php','_self')</script>";
						
						}
					
						}
					}
					if(isset($_POST['continue'])) {
					
					$total = 0;	
					echo "<script>window.open('index.php','_self')</script>";	
					}
					
					
					
					
				
					
				
				?>               
                 


ไฟล์ functionsที่เกี่ยวข้อง

Code (PHP)
// creating the shopping cart
function fitupcart(){

if(isset($_GET['add_cart'])){
	
	global $con;
	
	$ip = getIp();
	
	$pro_id = $_GET['add_cart'];
	
	$check_pro =  "Select * From fitup_cart where fitup_c_ip_add='$ip' AND fitup_c_id='$pro_id'";
	
	$run_check = mysqli_query($con, $check_pro);
	
	if(mysqli_num_rows($run_check)>0) {
		
	echo "";
		
	}
	else {
		
	$insert_pro = "insert into 	fitup_cart (fitup_c_id,fitup_c_ip_add) values ('$pro_id','$ip')";
	
	$run_pro = mysqli_query($con, $insert_pro);
	
	echo "<script>window.open('index.php','_self')</script>";	
	}
}
}


จากหน้าเว็บ เมื่อเลือกสินค้าที่ต้องการ คลิกปุ่ม ซื้อสินค้าใต้รูป ตามภาพนะครับ
1

*********เมื่อกดซื้อสินค้าจะทำการเพิ่มข้อมูลลงใน ตาราง*********
db1

เมื่อกดไปที่ตะกร้า (cart.php) จะปรากฎ ราคา จำนวน ราคาทั้งหมด ดังภาพ

2

ลองซื้อมากกว่า 1 ชิ้น ลองไป 3 ชิ้น

3

การคำนวณถูกต้อง

แต่ปัญหาของผมก็คือ เมื่อมีสินค้า ในตะกร้ามากกว่า 1 ตัวขึ้นไปการคำนวณจะมั่วไปหมดเลยครับ ตามภาพ

4

ความเป็นจริง ราคาทั้งหมดต้องแสดง 299*3= 897 / 400*3=1200 รวมแล้วจะต้องได้ 2097

ภาพ ตารางหลังการกดซื้อ

db2

code ทั้งหมดผมทำตาม youtube ลิ้ง https://www.youtube.com/watch?v=utQW0QFxJw0 จนมาถึงขั้นตอนสุดท้ายคลิปท้าย ผมเลื่อนไปอ่านคอมเม้นคนสอนเค้าบอก การคำนวณใช้ได้กับ สินค้าตัวเดียว

ผมจึงอยากให้พี่ๆรบกวนช่วยแก้ให้ผมหน่อยครับ อยากดูโค๊ดตรงไหน หรือ db รบกวนบอกได้เลยครับ
ปัญหาอีกอย่าง เวลาผมอยากจะซื้อสินค้า เช่น ผมเลือกสินค้า A มาก่อน แล้วเลือกสินค้าB เวลาผมใส่ จำนวน ที่สินค้า A ที่ 3 ชิ้น สินค้า B 1 ชิ้น แต่ใน DB ขึ้น 3 ทั้ง 2 ชิ้นเลย




Tag : PHP, MySQL, Windows









ประวัติการแก้ไข
2015-09-29 15:50:54
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-09-29 15:42:39 By : champalway View : 1148 Reply : 6
 

 

No. 2



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



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

ลองตรวจ ตัวแปรที่เกี่ยวข้องกันให้ดีครับ


1 $_SESSION['fitup_c_quantity'];
การใช้ตัวแปร session qty มาไว้ใน loop มันควรเป็น array เพื่อใช้ อ้างอิง จำนวนสินค้า ตามลำดับที่มี
แต่ทำไม่ถึงใช้ session ในเมื่อ สามารถคิวรี่ จำนวน จาก database ได้

2 ตัวแปรถูกกระทำ ทำให้ค่าเปลี่ยนไปหรือเปล่า
Code
if(isset($_POST['update_qty'])) { $qty = $_POST['qty']; $update_qty = "update fitup_cart set fitup_c_quantity='$qty'"; $run_qty = mysqli_query($con, $update_qty); $_SESSION['fitup_c_quantity']=$qty; $total =$total*$qty; }


3 การใช้ array_sum ควรใช้กับ array หลาย element มีแค่ 1 element ไม่จำเป็นต้องใช้
Code
while ($pp_price=mysqli_fetch_array($run_pro_price)){ $product_price = array($pp_price['fitup_pd_price']); $product_title = $pp_price['fitup_pd_title']; $product_img = $pp_price['fitup_pd_img']; $single_price = $pp_price['fitup_pd_price']; $values = array_sum($product_price); $total += $values;


4 $total ควรเกิดจาก ผลรวม จำนวนสินค้า x ราคาสินค้า
$total += $pp_price['fitup_pd_price'] * $quantity; // คิวรี่มา ไม่ใช่เอามาจาก session ตัวแปรเดียวกัน






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-30 02:05:18 By : NewbiePHP
 


 

No. 3

Guest


ตอบความคิดเห็นที่ : 2 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-09-30 02:05:18
รายละเอียดของการตอบ ::
พอจะแก้ไข code ให้หน่อยได้ไหมครับ พอดีมือใหม่ หัดทำตามอยุ่ พอถูไถไปได้

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-30 14:52:16 By : champalway
 

 

No. 4



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



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


ตอบความคิดเห็นที่ : 2 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-09-30 02:05:18
รายละเอียดของการตอบ ::
ช่วยผมหน่อยครับพี่ มือใหม่จริงๆ เพิ่งเรียน php พื้นฐานก็มีแค่มาจาก ภาษาอื่น ในหัวคิดได้แค่คิด โค๊ดออกมาไม่ได้เลย

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-01 12:45:39 By : champalway
 


 

No. 5



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



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

เดี๋ยวนี้ผมชอบที่จะช่วยสอนคนที่ทำแล้วติดปัญหา แนะนำวิธีแก้ปัญหาเออเร่อร์ให้
แล้วกลับไปแก้ไขเอง ตามความคิดของตัวเอง หรือตัวอย่างโค๊ดสั้นๆให้
ประเภทเขียนโค๊ดยาวๆ ให้คงไม่ทำแล้ว

และสำหรับคนที่เขียนไม่เป็น ผมก็จะแนะนำให้ไปอ่าน การเขียนโปรแกรมเบื้องต้นก่อน
เช่นสำหรับคุณควรจะเข้าไปอ่านศึกษาได้ที่ http://www.thaicreate.com/php.html

ส่วนคำสั่งแต่ล่ะคำสั่ง เข้าไปอ่าน document ของ PHP ให้เข้าใจหลักการเบื้องต้นก่อน

ถ้าอยากได้เร็ว จ้างครับ ผมก็รับจ้่างเขียนโปรแกรมเหมือนกัน
สำหรับคุณที่เขียนโปรแกรมอื่นเป็นอยู่บ้างได้เคยเข้ามาช่วยตอบปัญหา
ของโปรแกรมที่คุณเขียนเป็นให้ใครบ้างหรือยังครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-01 13:23:02 By : NewbiePHP
 


 

No. 6



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



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


ตอบความคิดเห็นที่ : 5 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-10-01 13:23:02
รายละเอียดของการตอบ ::
Code (PHP)
 <?php 
								
								
								if(isset($_POST['update_qty'])) {
																								
									$qty = $_POST['qty'];	
									
																	
									$update_qty = "update fitup_cart set fitup_c_price='$single_price'";
									
									$run_qty = mysqli_query($con, $update_qty);
									
									$_SESSION['fitup_c_quantity']=$qty;
																																																																							
									$total =$total*$qty;
									
								}
								
								
								 ?>


code นี้ผมดัดแปลง เพื่อให้กดแล้วเก็บค่า ราคาสินค้า
แต่พอกดแล้ว มันไปเก็บทั้งหมดเลย ไม่ได้เก็บ ไอดีใครไอดีมัน

2


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-01 14:05:12 By : champalway
 


 

No. 7



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



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

$update_qty = "update fitup_cart set fitup_c_price='$single_price' where id=$_POST[id] ";

ต้องกำหนด where clause ให้กับ id ด้วยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-01 14:09:37 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 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 อัตราราคา คลิกที่นี่