Jump to content

Archived

This topic is now archived and is closed to further replies.

gnuffo1

Something wrong with this query

Recommended Posts

I have the variable stocklevel, which when echoed displays the correct amount, but after I do this query:

[code]$updatestock = "UPDATE products SET products_quantity='$stocklevel' WHERE  products_id=$products_id";
$result = mysql_query($updatestock) or die ('Your stock query doesn't work: ' . mysql_error());[/code]

The php page it's in appears to load fine, doesn't even have any errors, but the field in the DB is ALWAYS updated to 0, no matter what the $stocklevel contains, even though it echos a completely different value on the page. I did have the same query before, but without the ' marks around $stocklevel and that displayed the error saying there was incorrect syntax near '=73' (if 73 was $stocklevel)

What I especially don't get is that just above that query in the php code, I have this one for updating the price, which works absoloutley fine and is in EXACTLY the same format:

[code]$updateprice = "UPDATE products SET products_price=$price WHERE products_id=$products_id";
$result = mysql_query($updateprice) or die ('Your price query doesn't work: ' . mysql_error());[/code]

This one works absoloutley fine all the time, even when I was getting an error messege for the stock one when I didn't have the ' marks around $stocklevel, and as you can see is in exactly the same format as the stock one. I don't understand it at all.

Another weird thing is the stock update query was working fine until I stuck the "or die" bit on the end. Ironically, maybe the error message is causing the problem?

Share this post


Link to post
Share on other sites
No, just got rid of the die bit off the end of the the stock update and it still doesn't work. I don't get any errors displayed and the page appears to work, displays the right amount (this is without the ' around $stocklevel) but when I check the database it just doesn't want to update. I've even put curly braces around each query, so:

[code]{
$updateprice = "UPDATE products SET products_price=$price WHERE products_id=$products_id";
$result = mysql_query($updateprice) or die ('Your price query doesn't work: ' . mysql_error());
}
{
$updatestock = "UPDATE products SET products_quantity=$stocklevel WHERE products_id=$products_id";
$result = mysql_query($updatestock);
}[/code]

but to no avial. And just in case you noticed the ' in doesn't for the error messege - that's not what's really in the error messege in the code, I actually have some swear words in it because I'm so annoyed and forgot that you can't have ' unless you \ them when I was censoring, but I digress.

Share this post


Link to post
Share on other sites
I've fixed it. The problem was that $stocklevel actually contained some html code in it as well, since I scanned it from an external website, but I put the substr bit to remove that code in the wrong if statement and hence it was trying to insert text into a int field; the error was displaying the text in the browser, but because it was mainly html tags the browser didn't output them to the screen so I didn't notice.

Share this post


Link to post
Share on other sites
Glad you got it working -- for future reference, I tend to echo the query string itself in PRE tags just make sure there's nothing funny going on.

Share this post


Link to post
Share on other sites

×

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.