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

HOME > PHP > PHP Forum > รบกวนดูโค็ต การตัดสต๊อกสินค้าหน่อยครับ ทำไมมันไม่ตัดให้ครับ



 

รบกวนดูโค็ต การตัดสต๊อกสินค้าหน่อยครับ ทำไมมันไม่ตัดให้ครับ

 



Topic : 052247



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



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




Code (PHP)
<?
	include('conn_mysql.php');
	
	$product_id = $_POST["product_id"];
	$dates = date("Y-m-d");
	$customer_id = $_POST["customer_id"];
	$sql = "insert into tborder (customer_id,pricetotal,dates) VALUES ('$customer_id','44','$dates')";
		$query = mysql_db_query($dbname,$sql)or die(mysql_error());
		
		$sql3="select max(order_no) from order_details";
	$result=mysql_query($sql3);
	$r=mysql_fetch_array($result);
	$order_no=$r[0]+1;
	
	for($i=0;$i<count($product_id);$i++)
	{		
	
		$num = "num".$product_id[$i];
		$num = $_POST["$num"];
		$total = "total".$product_id[$i];
		$total = $_POST["$total"];
		$product_code = $_POST["product_code"];
		
                //บรรทัดนี้อ่าครับ
		//$sql5 = mysql_query("update product set product_id = balance - '$num[$i]' where order_no = '$product_id[$i]'");
		$query = mysql_db_query($dbname,$sql5)or die(mysql_error());
		 	
		$sql2 = "insert into order_details (order_no,product_id,product_code,quantity) VALUES ('$order_no','$product_id[$i]','$product_code[$i]','$num')";
		$query = mysql_db_query($dbname,$sql2)or die(mysql_error());
		
		echo "<script>alert('บันทึกข้อมูลเรียบร้อย');</script>";
		}
		echo "<script>window.location='ordercustomer.php';</script>";
	mysql_close();   
?>




Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-11-25 17:38:36 By : beer656 View : 1855 Reply : 19
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

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

Code (PHP)
//$sql5 = mysql_query("update product set product_id = balance - '$num[$i]' where order_no = '$product_id[$i]'");


ไป remark ไว้มันจะตัดได้ยังไงครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-25 20:05:36 By : webmaster
 


 

No. 2



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



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


ผมทำ remark ไว้ให้พี่ดู ครับ เอาออกมันก็ยังไม่ได้อ่าครับ ในตาราง product ไม่เห็นจะตัดเลยอ่าครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-25 20:38:53 By : beer656
 

 

No. 3



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

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


order_no = '$product_id[$i]'
ดูจาก คิวรี่นะ
order no กับ product id มันน่าจะคนละเรื่องกันนะ
น่าจะเป็น
$sql5 = mysql_query("update product set product_id = balance - '$num[$i]' where product_id = '$product_id[$i]'");
มั้ง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-25 22:01:12 By : PlaKriM
 


 

No. 4



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



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


ทำตามแล้ว ยังไม่ได้เลยครับ ในตาราง product ยังไม่ตัดเลยอ่าครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-25 23:49:35 By : beer656
 


 

No. 5



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

สมาชิกที่ใส่เสื้อไทยครีเอท

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

mysql_query("update product set product_id = balance - '$num[$i]' where order_no = '$product_id[$i]'");

แปลกใจว่าทำไม ไปตัดสต๊อกที่ฟิว product_id ดูคิวรี่ งง ๆ เนาะ จริง ๆ จะ update ฟิว balance หรือเปล่า


mysql_query("update product set balance = (new balance) where product_id = '$product_id[$i]'");
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-26 00:03:16 By : ultrasiam
 


 

No. 6



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



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


Code (PHP)
$result = mysql_query("update product set balance  = balance - '$num[$i]' where product_id = '$product_id[$i]'");


ทำไมตัดแค่ สินค้าแรกอันเดียวละครับ สินค้าอื่นไมไม่ตัดละครับ งง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-26 00:23:43 By : beer656
 


 

No. 7



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



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


เงียบหายไปหมดเลย ยังติดอยู่เลยอ่าครับ T^T
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-26 12:42:54 By : beer656
 


 

No. 8



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

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


"update product set balance = balance - '$num[$i]' where product_id = '$product_id[$i]'"

echo มันออกมาดูัครับ ถ้าได้หลายอันก็ต้องตัดหลายอัน ถ้าออกมาอันเดียวก็ตัดอันเดียว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-26 17:05:55 By : PlaKriM
 


 

No. 9



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



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


ถ้าทำให้ตัดสต๊อกหลายอัน ทำไงหรอครับ ผมลอง echo ออกมาแล้วครับ มันตัดอันเดียว ถ้าหลายอัน ต้องทำยังไงหรอครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-26 23:06:32 By : beer656
 


 

No. 10



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

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

หลายอันก็หลาย Query ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-26 23:49:40 By : webmaster
 


 

No. 11



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



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


Code (PHP)
		$result = mysql_query("update product set balance  = balance - '$num[$i]' where product_id = '$product_id[$i]'");
		$result1 = mysql_query("update product set balance  = balance - '$num[$i]' where product_id = '$product_id[$i]'");
		$result2 = mysql_query("update product set balance  = balance - '$num[$i]' where product_id = '$product_id[$i]'");


ผมทำ query หลายอัน แต่ผลมันออกมา ตัดเฉพาะอันแรก เหมือนเดิมครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-27 00:26:42 By : beer656
 


 

No. 12



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



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


ช่วยบอกผมหน่อยครับ เงียบหมดเลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-27 14:57:29 By : beer656
 


 

No. 13



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



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

$_POST['product_id'] มันถูกส่งค่ามาเป็น Array หรือเปล่า
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-27 15:09:26 By : kalamell
 


 

No. 14



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



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


ผมว่าท่านใช้ SQL ผิดนะครับ อย่างเช่นการ update product set product_id=xxxxxxxxxx ผมว่าไอ้ product_id นั่นมันเป็น primary key ของตาราง product หรือเป่าครับ(โดยทั่วไปนะครับสังเกตจากขื่อ) น่าจะเป็น update product set balance=(balance-used) where product_id='$product_id' ส่วนคำสั่ง for($i=0;$i<count($product_id);$i++) ไอ้ตัวแปร $product_id ท่านส่งมาเป็น array เหรอครับ ถ้าอย่างนั้นคงต้องขอดูหน้าที่ท่านส่งข้อมูลไปตัดสต๊อกด้วยแล้วหล่ะครับ เป็นไปได้ขอดูโครงสร้าง database ที่จำเป็นด้วยก็ดีครับ บางทีอาจจะช่วยดู structure กับ relationship ให้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-27 16:20:49 By : wad
 


 

No. 15



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



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


อีกอย่างครับท่านผมสังเกตว่า sequence ท่านเป็นการทำงานที่จะต้องมี transaction เข้ามาช่วยนะครับ ไม่อย่างนั้นท่านอาจเจอปัญหาตัดสต๊อกบางรายการ แต่บางรายการไม่ถูกตัด คืออัพเดทไม่หมดอ่ะครับ วิธีที่ผมใช้คือ เขียนโปรแกรมดึงข้อมุลที่จะอัพเดททั้งหมดเก็บไว้ในตัวแปร SQL ที่เป็น array แล้วเรียกฟังก์ชั่นจัดการ transaction โดยส่ง sql array นั่นเข้าไปครับ ลองเอาไปใช้ดูนะครับ

function execute_transactions($arr_sql){
//***** จะใช้ Transactions ได้ Table ต้องใช้ ENGINE แบบ InnoDB ด้วยนะครับ(ไม่ทราบเหมือนกันว่าทำไม่แต่ ENGINE อื่นๆไม่ได้ครับ *****
if(gettype($arr_sql)!="array"){//ต้องส่ง SQL มาเป็นอาเรย์เท่านั้น
echo "<font color=\"red\">Not Array SQL command!</font><br>";
return false;
} else {
global $conn;
$affect = 0;
mysql_query("BEGIN");
for ($i=0;$i<count($arr_sql);$i++){
mysql_query($arr_sql[$i]);
if(mysql_error()){
mysql_query("ROLLBACK"); //ถ้่าำไม่สามารถกระทำได้ต้องคืนค่าเดิมทั้งหมด
return false; //ออกจากฟังก์ชั่นเมื่อคืนค่าเดิมแล้ว
}else{
$affect += mysql_affected_rows($conn);
}
}//for ($i=0;$i<count($arr_sql);$i++){
mysql_query("COMMIT");
return $affect;//คืนค่าเป็นจำนวนเร็คคอร์ดที่ถูกกระทำ
}
}//
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-27 16:36:53 By : wad
 


 

No. 16



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



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


Code (PHP)
function execute_transactions($arr_sql){
//***** จะใช้ Transactions ได้ Table ต้องใช้ ENGINE แบบ InnoDB ด้วยนะครับ(ไม่ทราบเหมือนกันว่าทำไม่แต่ ENGINE อื่นๆไม่ได้ครับ *****
if(gettype($arr_sql)!="array"){//ต้องส่ง SQL มาเป็นอาเรย์เท่านั้น
echo "<font color=\"red\">Not Array SQL command!</font><br>";
return false;
} else {
global $conn;
$affect = 0;
mysql_query("BEGIN");
for ($i=0;$i<count($arr_sql);$i++){
mysql_query($arr_sql[$i]);
if(mysql_error()){
mysql_query("ROLLBACK"); //ถ้่าำไม่สามารถกระทำได้ต้องคืนค่าเดิมทั้งหมด
return false; //ออกจากฟังก์ชั่นเมื่อคืนค่าเดิมแล้ว
}else{
$affect += mysql_affected_rows($conn);
}
}//for ($i=0;$i<count($arr_sql);$i++){
mysql_query("COMMIT"); 
return $affect;//คืนค่าเป็นจำนวนเร็คคอร์ดที่ถูกกระทำ
}
}//


โค็ตฟังก์ชันที่พี่ให้มา ผมใช้ไม่เป็นอ่าครับ ไม่ทราบว่า เอามาใส่ส่วนไหนของ โค็ตผมครับ งงมากๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-27 19:18:48 By : beer656
 


 

No. 17



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



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


หน้าฟอร์มของผมครับ
<?
    	include('conn_mysql.php');
		
		$sql = "select * from product ";
		$query = mysql_db_query($dbname,$sql)or die(mysql_error());
		if(mysql_num_rows($query)>0)
			{ 
    ?>
        <tr>
          <td width="5%"><div align="center"><font color="#FF0000">ลำดับ</font></div></td>
          <td width="29%"><div align="center"><font color="#FF0000">ชื่อสินค้า</font></div></td>
          <td width="16%"><div align="center"><font color="#FF0000">ราคา</font></div></td>
          <td width="17%"><div align="center"><font color="#FF0000">จำนวนที่ต้องการซื้อ</font></div></td>
          <td width="15%"><div align="center"><font color="#FF0000">รวมเงิน</font></div></td>
        </tr>
        <?
		while($rsst=mysql_fetch_object($query))
		{
			$product_id = $rsst-> product_id;
			$product_name = $rsst-> product_name;
			$product_price = $rsst->product_price;
			$product_code = $rsst->product_code;
			$x++;
    ?>
        <tr>
          <td><div align="center">
              <?=$x?>
              <input type="hidden" name="product_id[<?=$x-1;?>]" id="product_id[<?=$x-1;?>]" value="<?=$product_id?>">
          </div></td>
          <td><div align="center">
              <?=$product_name?>
              <input type="hidden" name="product_code[]" id="product_code[]" value="<?=$product_code?>" />
              <input type="hidden" name="balance[]" id="balance[]" value="<?=$balance?>" />
          </div></td>
          <td><div align="center">
              <?=$product_price?>
          </div></td>
          <td><div align="center">
                <input type="text" name="num<?=$product_id?>" id="num<?=$product_id?>" autocomplete="off" onKeyDown=" if(this.value==0) this.value = '';"  onKeyUp="if(this.value==0) this.value=0;document.all.total<?=$product_id?>.value= parseFloat(document.all.num<?=$product_id?>.value)*<?=$product_price?>;" value="0">
              </div></td>
          <td><div align="center">
                <input type="text" name="total<?=$product_id?>" id="total<?=$product_id?>" value="0">
              </div></td>
        </tr>
        <?
		}
		}
			else
		{
			echo "<div align=\"center\"><font color=\"#FF0000\" size=\"2\">ไม่มีข้อมูล</font></div>";
		}
    ?>

รับค่าจากฟอร์มเพื่อบันทึกและตัดสต๊อก
<?
	include('conn_mysql.php');
	
	$product_id = $_POST["product_id"];
	$dates = date("Y-m-d");
	$customer_id = $_POST["customer_id"];
	$sql = "insert into tborder (customer_id,pricetotal,dates) VALUES ('$customer_id','44','$dates')";
		$query = mysql_db_query($dbname,$sql)or die(mysql_error());
		
		$sql3="select max(order_no) from order_details";
	$result=mysql_query($sql3);
	$r=mysql_fetch_array($result);
	$order_no=$r[0]+1;
	
	for($i=0;$i<count($product_id);$i++)
	{		
	
		$num = "num".$product_id[$i];
		$num = $_POST["$num"];
		$total = "total".$product_id[$i];
		$total = $_POST["$total"];
		$product_code = $_POST["product_code"];
		$balance = $_POST["balance"];
		 	
		$sql2 = "insert into order_details (order_no,product_id,product_code,quantity) VALUES ('$order_no','$product_id[$i]','$product_code[$i]','$num')";
		$query = mysql_db_query($dbname,$sql2)or die(mysql_error());
		
		$result = mysql_query("update product set balance  = balance - '$num[$i]' where product_id = '$product_id[$i]'");
		
		
		echo "<script>alert('บันทึกข้อมูลเรียบร้อย');</script>";
		}
		echo "<script>window.location='ordercustomer.php';</script>";
	mysql_close();   
?>


ตารางproduct
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-27 19:27:14 By : beer656
 


 

No. 18



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



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


เงียบหมดเลย ช่วยผมหน่อยเครียดดดด
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-28 02:55:15 By : beer656
 


 

No. 19



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



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


เงียบหายไปหมดเลย อ่า ช่วยบอกกันหน่อยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-28 18:48:51 By : beer656
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
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 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2025 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่