} else {
$sql = "update products
set products_quantity = '" . $qty . "',
products_last_modified = '" .date("Y-m-d H:i:s")."'
where " . PRODUCT_ID . "= '" . $model_no . "'";
$result = mysql_query($sql); // this executes the sql
}
}
} // back up to process next item
// and finally, close the db and we are done.
tep_db_close();
?>
credit for code to original author for a open source plug in posted online, currently the query is updating a product record’s stock level WHEN the product ID passed to it matches and also sets the last modified date.
I am also trying to add another where clause whereby the sql query needs to also only perform the record update if "products_status = 1" this is another field in the MySQL database and I only want to update records where this flag is on 1 . I tried adding this line in but I am clearly messing up the syntax.
Please don’t laugh but I tried something like
$sql = "update products
set products_quantity = '" . $qty . "',
products_last_modified = '" .date("Y-m-d H:i:s")."'
where " . PRODUCT_ID . "= '" . $model_no . "'
AND " . products_status . "= '" . "'1" . "'";
and it didn’t work
>Solution :
I think you are 90% there. The general form of a WHERE clause is:
WHERE
field_1 = 'some specific value' AND
field_2 = 1233 -- also a specific value
The original code you have for your WHERE clause is:
where " . PRODUCT_ID . "= '" . $model_no . "'";
It seems to me here that PRODUCT_ID
is a variable that is containing the name of a field and $model_no
is the value. Although, it is possible that I have that backwards.
The code you added was:
AND " . products_status . "= '" . "'1" . "'"
I’m not sure if products_status
is a variable containing the name of a field, but I’m guessing it is. Now, in the rest of the line there is an issue. You have " '" . "'1" . "'"
This would evaluate to ''1'
, which is one too many single quotes. If product_status
is a varchar or similar, you just want "='1'"
if it is a numeric type you want "=1"
.