[PHP-DB] SQL syntax
Hello Everyone, Hope your 2013 is treating you well. Quick question and apologies if it is a stupid question. Is this a viable syntax? $sql = SELECT orderid FROM ORDERS_TABLE WHERE orderstatus = 'Cancelled' OR (orderstatus = ('New' OR 'Denied' OR 'Expired' OR 'Failed' OR 'Pending' OR 'Refunded' OR 'Reversed' OR 'Under Review' OR 'Voided') AND orderdate '.mysqli_real_escape_string($yesterday).'); Namely the orderstatus = (a whole bunch of options). In my database `orderstatus` field is an enum() list btw. Or is there a better way to check multiple options against an enum inside your select statement? Reason I am doing this is to avoid having to do... $sql = SELECT orderid FROM ORDERS_TABLE WHERE orderstatus = 'Cancelled' OR (orderstatus = 'New' AND orderdate '.mysqli_real_escape_string($yesterday).') OR (orderstatus = 'Denied' AND orderdate '.mysqli_real_escape_string($yesterday).') OR (orderstatus = 'Expired' AND orderdate '.mysqli_real_escape_string($yesterday).') ... etc; TIA, Karl DeSaulniers Design Drumm http://designdrumm.com
Re: [PHP-DB] SQL syntax
SELECT orderid FROM ORDERS_TABLE WHERE orderstatus IN ( 'Cancelled', 'New', 'Denied', 'Expired' , 'Failed' , 'Pending' , 'Refunded' , 'Reversed' , 'Under Review' , 'Voided') AND orderdate '.mysqli_real_escape_string($ yesterday); Another option would be to use either of these functions - Find-in-sethttp://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_find-in-set. This is useful if your data type is SET/ENUM type - Fieldhttp://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_field On Tue, Jan 15, 2013 at 2:59 PM, Karl DeSaulniers k...@designdrumm.comwrote: SELECT orderid FROM ORDERS_TABLE WHERE orderstatus = 'Cancelled' OR (orderstatus = ('New' OR 'Denied' OR 'Expired' OR 'Failed' OR 'Pending' OR 'Refunded' OR 'Reversed' OR 'Under Review' OR 'Voided') AND orderdate '.mysqli_real_escape_string($**yesterday).'); regds amit The difference between fiction and reality? Fiction has to make sense.
Re: [PHP-DB] SQL syntax
On Jan 15, 2013, at 5:25 AM, Amit Tandon wrote: SELECT orderid FROM ORDERS_TABLE WHERE orderstatus IN ( 'Cancelled', 'New', 'Denied', 'Expired' , 'Failed' , 'Pending' , 'Refunded' , 'Reversed' , 'Under Review' , 'Voided') AND orderdate '.mysqli_real_escape_string($ yesterday); Another option would be to use either of these functions - Find-in-sethttp://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_find-in-set . This is useful if your data type is SET/ENUM type - Fieldhttp://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_field On Tue, Jan 15, 2013 at 2:59 PM, Karl DeSaulniers k...@designdrumm.com wrote: SELECT orderid FROM ORDERS_TABLE WHERE orderstatus = 'Cancelled' OR (orderstatus = ('New' OR 'Denied' OR 'Expired' OR 'Failed' OR 'Pending' OR 'Refunded' OR 'Reversed' OR 'Under Review' OR 'Voided') AND orderdate '.mysqli_real_escape_string($**yesterday).'); regds amit The difference between fiction and reality? Fiction has to make sense. I am wanting Cancelled to be without a date check, but thanks for the suggestion. I will try the IN option. Thank you. Best, Karl DeSaulniers Design Drumm http://designdrumm.com -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-DB] sql syntax error
- Original Message - From: Addison Ellis [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Tuesday, January 28, 2003 10:46 PM Subject: [PHP-DB] sql syntax error hello, i can not pinpoint this. your time and help is very much appreciated. best, addison Error: id=, HTTP_POST_VARS=Array, key=, value=, category=, subcategory=, [EMAIL PROTECTED] Error in query: insert into ads values (year,make,model,color,mileage,condition,price,other,contact,next_,,created) values ('',,NOW()),Error:You have an error in your SQL syntax near 'created) values ('',,NOW())' at line 1 Code: else { foreach($HTTP_POST_VARS as $column_name = $column_value) $column_names .= $column_name . ','; $column_values .= '$column_values',; $query = insert into ads values ($column_names,created) values ($column_values,NOW()); $result = mysql_query($query) or die (Error in query: $query,Error: .mysql_error()); } Try this: foreach($HTTP_POST_VARS as $column_name = $column_value) { $column_names .= $column_name . ','; $column_values .= '$column_value',; } $query = insert into ads values ($column_names created) values ($column_values NOW()); $result = mysql_query($query) or die (Error in query: $query,Error: .mysql_error()); I still don't think it's going to work for you. do you really have a column called 'next_' in your table? It's probably the button you pressed to submit the form, which is in HTTP_POST_VARS, but I don't see a reason it would be in your table... ---John Holmes... -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php