Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 3 of 3
  1. #1
    New to the CF scene
    Join Date
    Jun 2012
    Posts
    3
    Thanks
    0
    Thanked 0 Times in 0 Posts

    [HELP] currency too long

    :help: Good day, i am currently practicing shopping cart for the preparation of my project in school but i am wondering why my total prices appear too long as shown in the image below .. im really having a hardtime in solving this.. thanks




    I use the following code

    Code:
    <?php 
    session_start(); // Start session first thing in script
    // Script Error Reporting
    error_reporting(E_ALL);
    ini_set('display_errors', '1');
    // Connect to the MySQL database  
    include "includes/connect_to_mysql.php"; 
    ?>
    <?php 
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //       Section 1 (if user attempts to add something to the cart from the product page)
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    if (isset($_POST['pid'])) {
        $pid = $_POST['pid'];
    	$wasFound = false;
    	$i = 0;
    	// If the cart session variable is not set or cart array is empty
    	if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) < 1) { 
    	    // RUN IF THE CART IS EMPTY OR NOT SET
    		$_SESSION["cart_array"] = array(0 => array("item_id" => $pid, "quantity" => 1));
    	} else {
    		// RUN IF THE CART HAS AT LEAST ONE ITEM IN IT
    		foreach ($_SESSION["cart_array"] as $each_item) { 
    		      $i++;
    		      while (list($key, $value) = each($each_item)) {
    				  if ($key == "item_id" && $value == $pid) {
    					  // That item is in cart already so let's adjust its quantity using array_splice()
    					  array_splice($_SESSION["cart_array"], $i-1, 1, array(array("item_id" => $pid, "quantity" => $each_item['quantity'] + 1)));
    					  $wasFound = true;
    				  } // close if condition
    		      } // close while loop
    	       } // close foreach loop
    		   if ($wasFound == false) {
    			   array_push($_SESSION["cart_array"], array("item_id" => $pid, "quantity" => 1));
    		   }
    	}
    	header("location: cart.php"); 
        exit();
    }
    ?>
    <?php 
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //       Section 2 (if user chooses to empty their shopping cart)
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    if (isset($_GET['cmd']) && $_GET['cmd'] == "emptycart") {
        unset($_SESSION["cart_array"]);
    }
    ?>
    <?php 
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //       Section 3 (if user chooses to adjust item quantity)
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    if (isset($_POST['item_to_adjust']) && $_POST['item_to_adjust'] != "") {
        // execute some code
    	$item_to_adjust = $_POST['item_to_adjust'];
    	$quantity = $_POST['quantity'];
    	$quantity = preg_replace('#[^0-9]#i', '', $quantity); // filter everything but numbers
    	if ($quantity >= 100) { $quantity = 99; }
    	if ($quantity < 1) { $quantity = 1; }
    	if ($quantity == "") { $quantity = 1; }
    	$i = 0;
    	foreach ($_SESSION["cart_array"] as $each_item) { 
    		      $i++;
    		      while (list($key, $value) = each($each_item)) {
    				  if ($key == "item_id" && $value == $item_to_adjust) {
    					  // That item is in cart already so let's adjust its quantity using array_splice()
    					  array_splice($_SESSION["cart_array"], $i-1, 1, array(array("item_id" => $item_to_adjust, "quantity" => $quantity)));
    				  } // close if condition
    		      } // close while loop
    	} // close foreach loop
    }
    ?>
    <?php 
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //       Section 4 (if user wants to remove an item from cart)
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    if (isset($_POST['index_to_remove']) && $_POST['index_to_remove'] != "") {
        // Access the array and run code to remove that array index
     	$key_to_remove = $_POST['index_to_remove'];
    	if (count($_SESSION["cart_array"]) <= 1) {
    		unset($_SESSION["cart_array"]);
    	} else {
    		unset($_SESSION["cart_array"]["$key_to_remove"]);
    		sort($_SESSION["cart_array"]);
    	}
    }
    ?>
    <?php 
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //       Section 5  (render the cart for the user to view on the page)
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    $cartOutput = "";
    $cartTotal = "";
    $pp_checkout_btn = '';
    $product_id_array = '';
    if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) < 1) {
        $cartOutput = "<h2 align='center'>Your shopping cart is empty</h2>";
    } else {
    	// Start PayPal Checkout Button
    	$pp_checkout_btn .= '<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
        <input type="hidden" name="cmd" value="_cart">
        <input type="hidden" name="upload" value="1">
        <input type="hidden" name="business" value="you@youremail.com">';
    	// Start the For Each loop
    	$i = 0; 
        foreach ($_SESSION["cart_array"] as $each_item) { 
    		$item_id = $each_item['item_id'];
    		$sql = mysql_query("SELECT * FROM tbl_products WHERE id='$item_id' LIMIT 1");
    		while ($row = mysql_fetch_array($sql)) {
    			$product_name = $row["product_name"];
    			$price = $row["price"];
    			$details = $row["details"];
    		}
    		$pricetotal = $price * $each_item['quantity'];
    		$cartTotal = $pricetotal + $cartTotal;
    		 
    
    		setlocale(LC_MONETARY, "en_US");
            $pricetotal = number_format(2, $pricetotal);
    		// Dynamic Checkout Btn Assembly
    		$x = $i + 1;
    		$pp_checkout_btn .= '<input type="hidden" name="item_name_' . $x . '" value="' . $product_name . '">
            <input type="hidden" name="amount_' . $x . '" value="' . $price . '">
            <input type="hidden" name="quantity_' . $x . '" value="' . $each_item['quantity'] . '">  ';
    		// Create the product array variable
    		$product_id_array .= "$item_id-".$each_item['quantity'].","; 
    		// Dynamic table row assembly
    		$cartOutput .= "<tr>";
    		$cartOutput .= '<td><a href="product.php?id=' . $item_id . '">' . $product_name . '</a><br /><img src="inventory_images/' . $item_id . '.jpg" alt="' . $product_name. '" width="40" height="52" border="1" /></td>';
    		$cartOutput .= '<td>' . $details . '</td>';
    		$cartOutput .= '<td>$' . $price . '</td>';
    		$cartOutput .= '<td><form action="cart.php" method="post">
    		<input name="quantity" type="text" value="' . $each_item['quantity'] . '" size="1" maxlength="2" />
    		<input name="adjustBtn' . $item_id . '" type="submit" value="change" />
    		<input name="item_to_adjust" type="hidden" value="' . $item_id . '" />
    		</form></td>';
    		//$cartOutput .= '<td>' . $each_item['quantity'] . '</td>';
    		$cartOutput .= '<td>' . $pricetotal . '</td>';
    		$cartOutput .= '<td><form action="cart.php" method="post"><input name="deleteBtn' . $item_id . '" type="submit" value="X" /><input name="index_to_remove" type="hidden" value="' . $i . '" /></form></td>';
    		$cartOutput .= '</tr>';
    		$i++; 
        } 
    	setlocale(LC_MONETARY, "en_US");
        $cartTotal = number_format(2, $cartTotal);
    	$cartTotal = "<div style='font-size:18px; margin-top:12px;' align='right'>Cart Total : ".$cartTotal." USD</div>";
        // Finish the Paypal Checkout Btn
    	$pp_checkout_btn .= '<input type="hidden" name="custom" value="' . $product_id_array . '">
    	<input type="hidden" name="notify_url" value="https://www.yoursite.com/storescripts/my_ipn.php">
    	<input type="hidden" name="return" value="https://www.yoursite.com/checkout_complete.php">
    	<input type="hidden" name="rm" value="2">
    	<input type="hidden" name="cbt" value="Return to The Store">
    	<input type="hidden" name="cancel_return" value="https://www.yoursite.com/paypal_cancel.php">
    	<input type="hidden" name="lc" value="US">
    	<input type="hidden" name="currency_code" value="USD">
    	<input type="image" src="http://www.paypal.com/en_US/i/btn/x-click-but01.gif" name="submit" alt="Make payments with PayPal - its fast, free and secure!">
    	</form>';
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Your Cart</title>
    <link rel="stylesheet" href="style/style.css" type="text/css" media="screen" />
    </head>
    <body>
    <div align="center" id="mainWrapper">
      <?php include_once("template_header.php");?>
      <div id="pageContent">
        <div style="margin:24px; text-align:left;">
    	
        <br />
        <table width="100%" border="1" cellspacing="0" cellpadding="6">
          <tr>
            <td width="18%" bgcolor="#C5DFFA"><strong>Product</strong></td>
            <td width="45%" bgcolor="#C5DFFA"><strong>Product Description</strong></td>
            <td width="10%" bgcolor="#C5DFFA"><strong>Unit Price</strong></td>
            <td width="9%" bgcolor="#C5DFFA"><strong>Quantity</strong></td>
            <td width="9%" bgcolor="#C5DFFA"><strong>Total</strong></td>
            <td width="9%" bgcolor="#C5DFFA"><strong>Remove</strong></td>
          </tr>
         <?php echo $cartOutput; ?>
         <!-- <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
          </tr> -->
        </table>
        <?php echo $cartTotal; ?>
        <br />
    <br />
    <?php //echo $pp_checkout_btn; ?>
        <br />
        <br />
        <a href="cart.php?cmd=emptycart">Click Here to Empty Your Shopping Cart</a>
        </div>
       <br />
      </div>
      <?php include_once("includes/template_footer.php");?>
    </div>
    </body>
    </html>

  • #2
    God Emperor Fou-Lu's Avatar
    Join Date
    Sep 2002
    Location
    Saskatoon, Saskatchewan
    Posts
    16,994
    Thanks
    4
    Thanked 2,662 Times in 2,631 Posts
    Upload site blocked as malicious by my barracuda. Describe what "too long" is and which of these variables it refers to. You have multiple with the word price in it.

  • #3
    Senior Coder Dormilich's Avatar
    Join Date
    Jan 2010
    Location
    Behind the Wall
    Posts
    3,394
    Thanks
    13
    Thanked 353 Times in 349 Posts
    your number_format() call is wrong.

    it’s
    string number_format ( float $number [, int $decimals = 0 ] )
    where you have
    Code:
    $cartTotal = number_format(2, $cartTotal);
    The computer is always right. The computer is always right. The computer is always right. Take it from someone who has programmed for over ten years: not once has the computational mechanism of the machine malfunctioned.
    André Behrens, NY Times Software Developer


  •  

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •