รบกวนช่วยดูโค้ด แจ้งเตือนสินค้าเกินสต็อก ให้หน่อยคะ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา รบกวนช่วยดูโค้ด แจ้งเตือนสินค้าเกินสต็อก ให้หน่อยคะ

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

function calculate_price(){ //คำนวณราคาสินค้า
   $dbcon = connect_db();	
   $sql3 = "SELECT bStock FROM tbbook WHERE bId='".$arrItems[$i]."'";
   $resultsql = mysqli_query($dbcon,$sql3);
	$a = mysqli_fetch_array($resultsql,MYSQL_ASSOC);
	$stock =$a["bStock"];
	$arrquality = explode("|",  $_SESSION["quality"] ) ;
	  if($arrquality >$stock){
	             	process_message("สั่งซื้อสินค้าเกินจำนวน","shopping_process1.php");
	}else if($arrquality <=$stock){
	       $arrData = $_POST["qualty"];
	       $_SESSION["quality"] = NULL;
	        for($i=0 ; $i < count($arrData) ; $i++ ){
		  if($i == 0){
		       $_SESSION["quality"] = $arrData[$i];
                      	process_message("คำนวนสินค้าเรียบร้อยแล้ว","shopping_process1.php");
		  }else{
		       $_SESSION["quality"] = $_SESSION["quality"] ."|".$arrData[$i];
		  }
	  }
	}
}


Porn111517 171.4.212.xxx 26-09-2014 23:24:16

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
ในฟังก์ชั่น มีการรับค่าตัวแปร แต่ทำไม ไม่มีกำหนด

อย่าง $arrItems[$i] หรือ $_POST["qualty"]

ไม่เห็นมีการกำหนด parameters เพื่อรับค่า

function($aaa,$bbb){
....



ninenik 1.46.81.xxx 26-09-2014
 ความคิดเห็นที่ 2
$arrItems[$i
$_POST["qualty"]

สองตัวนี้มันรับค่ามาจากไฟล์ ตะกร้าสินค้า ที่กรอกจำนวนสินค้าไม่ใช่หรือคะ เข้าใจถูกรึเปล่านี่ 


porn111517 171.4.212.xxx 26-09-2014 23:47
 ความคิดเห็นที่ 3
ฟังก์ชั่น จะมีตอนรับ และตอนส่งค่า

ตอนรับค่าเรียก parameter ตอนส่งค่า เรียก argument

function myfunc($aaa,$bbb){
   echo $aaaa."  -  ".$bbb."<br>";
}


$aaa กับ $bbb คือตอนรับค่า ไปใช้ในฟังก์ชั่น 

   echo $aaaa."  -  ".$bbb."<br>";


ค่าตัวแปรใน ฟังก์ชั่นจะมีขึ้นลอยๆ ไม่ได้ มันจะไม่มีค่า ถ้าไม่ได้กำหนด


ส่วนตอนใช้งาน หรือการเรียกใช้

<?php
$data=6;
myfunction(2,$data);
?>


2 กับ $data คือ argument ที่ส่งเข้าไปใช้งานในฟังก์ชั่น



ninenik 1.46.81.xxx 27-09-2014
 ความคิดเห็นที่ 4
งั้นช่วยดูโค้ดนี้ให้หน่อยคะ เราสามารถแทรกโค้ด แจ้งเตือนสินค้าเกินสต็อก ได้ยังไงบ้างคะ
ตัวนี้ สามารถคำนวณราคาได้แล้ว แต่ขาดแจ้งเตือนสินค้าเกินสต็อก
function calculate_price() {   
	$arrData = $_POST["txtQualty"];
	$_SESSION["quality"] = NULL ;

	for ( $i = 0 ; $i < count( $arrData ) ; $i++  ) {
		if ($i == 0) {
			$_SESSION["quality"] = $arrData[$i] ;  
		} else {
			$_SESSION["quality"] = $_SESSION["quality"] . "|" .  $arrData[$i] ; 
						
		}
	}
} 

 


porn111517 223.207.132.xxx 27-09-2014 12:52
 ความคิดเห็นที่ 5
แง่ว



ตัวแปรนี้เข้าไปอยู่ในฟังก์ชั่น ได้ยังไง

$_POST["txtQualty"]

ทำไมฟังก์ชั่นถึงไม่มีการกำหนด parameter

ตัวอย่างการกำหนด paremeter

function calculate_price($arrData) {   
//	$arrData = $_POST["txtQualty"];
	$_SESSION["quality"] = NULL ;

	for ( $i = 0 ; $i < count( $arrData ) ; $i++  ) {
		if ($i == 0) {
			$_SESSION["quality"] = $arrData[$i] ;  
		} else {
			$_SESSION["quality"] = $_SESSION["quality"] . "|" .  $arrData[$i] ; 
						
		}
	}
} 


แล้วหน้าเรียกใช้งานฟังก์ชั่น ทำงานอย่างไร

ตัวอย่างการเรียกใช้

calculate_price($_POST["txtQualty"]);


ส่วนการเทียบจำนวนเกินสต็อก เห็นการเก็บค่าเป็น string ใน session ก็ไม่แน่ใจว่าจะแนะนำแบบไหน
ปกติ จำนวนที่สั่งก็น่าจะเก็บเป็นตัวเลข

ไว้ทำเป็นบทความ แนะนำต่อไป







ninenik 1.47.19.xxx 27-09-2014
 ความคิดเห็นที่ 6

การเรียกใช้ เรียกใช้ฟังก์ชั่นในไฟล์เดียวกัน โค้ดตัวนี้อยู่ข้างบน
 
ส่วนฟังค์ชั่นอยู่ล่างลงมาหน่อย
 
มันก็สามารถคำนวณได้ แค่ติดตรงอยากให้มัน เช็ตสั่งซื้อสินค้าเกินจำนวนคะ
if ( $_POST["btnDelete"] ) { if ( empty ( $_POST["chkDel"] ) ) { $msg = "เลือกรายการที่ต้องการลบก่อน" ; } else { delete_items() ; calculate_price() ; $msg = "ลบรายการที่เลือกเรียบร้อยแล้ว" ; } process_message( $msg, "shopping_process1.php" ) ; } elseif ( $_POST["btnCalculate"] ) { $_SESSION["Shipping"] = $_POST["rdoShip"] ; calculate_price() ; $msg = "คำนวณราคาสินค้าเรียบร้อยแล้ว" ; process_message( $msg, "shopping_process1.php" ) ; งง จริง


porn111517 49.49.39.xxx 27-09-2014 19:11
 ความคิดเห็นที่ 7
เอาใหม่ค่ะ 
การเรียกใช้งานฟังก์ชั่น เรียกใช้ภายในไฟล์เดียวกัน โค้ดตัวนี้อยู่ข้างบน
ส่วนฟังค์ชั่นอยู่ล่างลงมาหน่อย
มันก็สามารถคำนวณได้ แค่ติดตรงอยากให้มัน เช็ตสั่งซื้อสินค้าเกินจำนวนคะ

if ( $_POST["btnDelete"] ) {  
	 if ( empty ( $_POST["chkDel"] ) ) {
		$msg = "เลือกรายการที่ต้องการลบก่อน" ;			
	 }  else {
		delete_items() ;
		calculate_price() ; 
		$msg = "ลบรายการที่เลือกเรียบร้อยแล้ว" ;			
	 }

	process_message( $msg, "shopping_process1.php" ) ;
	
} elseif ( $_POST["btnCalculate"] ) {  	
	$_SESSION["Shipping"] = $_POST["rdoShip"] ;
	calculate_price() ; 
	$msg = "คำนวณราคาสินค้าเรียบร้อยแล้ว" ;			
	process_message( $msg, "shopping_process1.php" ) ;






porn111517 49.49.39.xxx 27-09-2014 19:13
 ความคิดเห็นที่ 8
งั้นข้ามเรื่องฟังก์ชั่นไป 

ลองเอาโค้ด เก็บจำนวน ที่สัง
และโค้ดจำนวน stock มาดู เผื่อแนะนำเพิ่มเติมได้


ninenik 1.47.19.xxx 27-09-2014
 ความคิดเห็นที่ 9

<?php  $dblink = connect_db() ;  
    
    for ( $i = 0 ; $i < count( $arrItems ) ; $i++ ) {
        $sql = " SELECT * FROM tblproducts WHERE productID = '" . $arrItems[$i] . "'" ;
        $resultSql = mysqli_query( $dblink, $sql ) ;
        $book = mysqli_fetch_array( $resultSql, MYSQL_ASSOC ) ; 
            
        $sqlPB = " SELECT proDiscount FROM tblPromotionBook AS pb, tblPromotions AS p WHERE pb.proID = p.proID AND productID = '" . $book["productID"] . "' AND ExpireDate IS NULL" ;
        $resultPB = mysqli_query( $dblink, $sqlPB ) ;
        $rowsPB = mysqli_num_rows( $resultPB ) ;   
        if ( $rowsPB > 0 ) {
            $rowsPB = mysqli_fetch_array( $resultPB, MYSQL_ASSOC ) ;
			$sale = calculate_salePrice($book["productPrice"] , $rowsPB["proDiscount"]) ;
        } else {
            $sale = $book["productPrice"] ;  
        }
        
        $total_quality =  $total_quality + $arrQuality[$i] ;
        $price = $sale * $arrQuality[$i] ; 
        $total_weight = $total_weight + ( $book["productWeight"] * $arrQuality[$i] ) ;	
        $total_price = $total_price + $price ;  	
		
		?>

        
        <tr bgcolor="#FFFFCC" valign="top">
            <td align="center" bgcolor="#FFFFFF"><input type="checkbox" name="chkDel[]" value="<?php echo $arrItems[$i] ; ?>" ></td>
            <td align="center" bgcolor="#FFFFFF"><a href="<?php echo "show_bookdetail.php?isbn=" . $book["productID"] ; ?>" class="menu">
                <img src="<?php echo '../includes/display.php?id=' . $book["productID"] . '&table=tblproducts&column=productID' ; ?>" width="100" border="100" /><br/>
                <?php echo $book["productID"] ; ?></a>
            </td>
            <td align="right" bgcolor="#FFFFFF"><?php echo number_format( $sale, 2 ) ; ?> </td>
            <td align="right" bgcolor="#FFFFFF"><?php echo number_format( $book["productWeight"], "," ) ; ?></td>
            <td align="right" bgcolor="#FFFFFF"><?php echo $book["productStock"] ;?> / <input type="text" name="txtQualty[<?php echo $i  ; ?>]" value="<?php echo $arrQuality[$i] ; ?>"  size="2" OnKeyPress="return chkNumber(this)">
			</td>
            <td align="right" bgcolor="#FFFFFF"><?php echo number_format( $book["productWeight"] * $arrQuality[$i], ","  ) ; ?></td>
            <td align="right" bgcolor="#FFFFFF"><?php echo number_format( $price, 2 ) ;  ?> </td>
        </tr>
    <?php } ?>
        <tr bgcolor="#FFFFCC">
            <td colspan="4" align="right" bgcolor="#DBDBDC">รวม</td>
            <td align="right" bgcolor="#DBDBDC"><?php echo $total_quality ; ?></td>
            <td align="right" bgcolor="#DBDBDC"><?php echo number_format( $total_weight , "," ) ; ?></td>
            <td align="right" bgcolor="#DBDBDC" style="color:red"><?php echo number_format( $total_price, 2 ) ; ?> </td>
        </tr>
        <tr bgcolor="#FFFFCC" height="20"><td colspan="7" align="center" bgcolor="#FFFFFF">&nbsp;</td></tr>

โค้ดนี้เป็นหน้าที่กรอกจำนวนสินค้าที่สั่ง
ตอนนี้ทำได้แค่โชว์จำนวนสินค้าคงเหลือ แต่ถ้าสั่งเกินยังสั่งซื้อได้


porn111517 49.49.39.xxx 27-09-2014 20:33
 ความคิดเห็นที่ 10
ถ้ากดปุ่มคำนวณสินค้าใหม่  หรือ ปุ่มลบสินค้า แล้วก็จะเข้าสู่หน้า นี้  เพื่อเช็คอะคะ ถ้าเช็คไรผ่านก็จะให้กรอกที่อยู่ที่จัดส่ง


<?php 	require_once("templateshopping.php") ;  require_once("../includes/function.php") ;
require_once("includes/shopping_function.php");	
show_header( "ยืนยันการสั่งซื้อ" ) ;   show_menu() ; 


if ( $_POST["btnDelete"] ) {  
	 if ( empty ( $_POST["chkDel"] ) ) {
		$msg = "เลือกรายการที่ต้องการลบก่อน" ;			
	 }  else {
		delete_items() ;
		calculate_price() ; 
		$msg = "ลบรายการที่เลือกเรียบร้อยแล้ว" ;			
	 }

	process_message( $msg, "shopping_process1.php" ) ;
	
} elseif ( $_POST["btnCalculate"] ) {  	
	$_SESSION["Shipping"] = $_POST["rdoShip"] ;
	calculate_price() ; 
	$msg = "คำนวณราคาสินค้าเรียบร้อยแล้ว" ;			
	process_message( $msg, "shopping_process1.php" ) ;
			
} else { 	
	check_authen( "member" ) ;	
	calculate_price() ;   
	$dblink = connect_db() ;  
	$sql = " SELECT * FROM tblMembers WHERE mUserName = '" . $_SESSION["ssMember"] . "'" ;
	$resultSql = mysqli_query( $dblink, $sql ) ;
	mysqli_close( $dblink ) ;
	$row = mysqli_fetch_array( $resultSql, MYSQL_ASSOC ) ;   	?>
  
  <script language="javascript" src="../javascript/js/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
function chk_form(){
	$(":input + span.require").remove();
	$(":input").each(function(){
		$(this).each(function(){	
			if($(this).val()==""){
				$(this).after("<span class=require>* จำเป็นต้องกรอก</span>");
			}
		});
	});
	if($(":input").next().is(".require")==false){
		return true;
	}else{
		return false;
	}
}
</script>  
 


porn111517 49.49.39.xxx 27-09-2014 20:37
1 2 Next






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ