Jump to content

why does one field refuse to update properly ?


vincej

Recommended Posts

Hi _ this is for me a mystery and I am pulling my hair out !

 

I have a column in a table which for some bizarre reason will not consistently update. Here are 2 rows from the table. Note the column 'Picking' - it is a 10 digit VARCHAR. When I run my code the other fields will happily update but SOMETIMES A PICKING WILL REFUSE as you can see in this example.  Or just as likely it will update on the second row but refuse the first row. Or even visa versa. It's driving me nuts !

 

I THANK YOU if you can spot what is going on !!! Many Thanks !

 

ID OrderID CustomerID ProdID Prodname Price Quantity Pricelb Weight OrderValue Picking Sale

33 JAC8846 5                 17       Ribs Large  60.00 1         5.00        5.00 25.00         open open

34 JAC8846 5                 28       Chicken        15.00 1         0.00 0.00 15.00         finished open

 

 

Here is the code which creates the variables. You will notice that there are few statements in there for testing purposes where I echo stuff out.

 

 function finishedorder(){  
$prodname = $_POST['prodname'];
$prodid =$_POST['prodid'];
$quantity = $_POST['quantity'];
$pricelb = $_POST['pricelb']; 
$customerid = $_POST['customerid']; 
$price = $_POST['price']; 
$orderid = $_POST['orderid']; 
$weight	= $_POST['weight'];

echo "line 191 Weight"; print_r ($_POST['weight']); echo"<br/>";
echo "line 192 PriceLB"; print_r ($_POST['pricelb']); echo "<br/>";
echo "line 193 Price"; print_r ($_POST['price']); echo "<br/>";
echo "line 193 ProdID"; print_r ($_POST['prodid']); echo "<br/>";

if (!isset( $_POST['weight'])){ 
$weight =  0; }
else $weight =  $_POST['weight'];

$numloops = count($_POST['prodid']);

for ($i = 0; $i < $numloops ; $i++) {                          // <=======  FOR LOOP 

if ($pricelb[$i] > 0 ){
$pricelb = $pricelb[$i];
$weight = $weight[$i];  
$ordervalue = $pricelb * $weight;
echo '$ordervalue1 ' .$ordervalue;echo "<br/>";
echo 'Weight1 '. $weight[$i];echo "<br/>";}

if ($pricelb[$i] < 1 ){
$ordervalue =  $price[$i];
$weight[$i] = 0;
echo '$ordervalue2 ' .$ordervalue;echo "<br/>";
echo 'Weight2 '.$weight[$i];echo "<br/>"; }


$sql ="                                                                          //  <======= SQL 
UPDATE confirmedorder
SET  weight='$weight[$i]' , ordervalue='$ordervalue', confirmedorder.picking = 'finished', confirmedorder.sale = 'open'
    WHERE prodID = '$prodid[$i]'
    AND OrderID = '$orderid[$i]' ;
";
$this->db->query($sql); 
	}
}

 

here are the reuslts of the echoed out POST arrays from the top mwith corresponding line numbers

 

 

line 191 WeightArray ( [0] => 5 )
line 192 PriceLBArray ( [0] => 5.00 [1] => 0.00 )
line 193 PriceArray ( [0] => 60.00 [1] => 15.00 )
line 193 ProdIDArray ( [0] => 17 [1] => 28 )
$ordervalue1 25
Weight1 5
$ordervalue2 15.00
Weight2 0

Link to comment
Share on other sites

in the same way that you are echoing the other variables (well done)... echo your $_POST['orderid'] and check the content... also you can echo your $sql query before to execute it and validate if you are getting what you are expecting

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.