crashmaster Posted March 23, 2009 Share Posted March 23, 2009 Hi there, have 1 problem. For.ex: I have a $str = '11,23,5,15'; I use this $str in mysql SQL query: mysql_query(" SELECT * FROM tab_table WHERE id IN (".$str.") "); but when I am echoing results, results are ordered by id asc (5,11,15,23)... Hot to make query like this without reordering IDs ??? I need ID order like in $str Thank you for any help or suggestion Quote Link to comment https://forums.phpfreaks.com/topic/150658-solved-query-withour-order/ Share on other sites More sharing options...
trq Posted March 23, 2009 Share Posted March 23, 2009 mysql_query(" SELECT * FROM tab_table WHERE id IN (".$str.") ORDER BY id "); Quote Link to comment https://forums.phpfreaks.com/topic/150658-solved-query-withour-order/#findComment-791472 Share on other sites More sharing options...
crashmaster Posted March 23, 2009 Author Share Posted March 23, 2009 mysql_query(" SELECT * FROM tab_table WHERE id IN (".$str.") ORDER BY id "); without result...doesnt work. Quote Link to comment https://forums.phpfreaks.com/topic/150658-solved-query-withour-order/#findComment-791474 Share on other sites More sharing options...
Maq Posted March 23, 2009 Share Posted March 23, 2009 Try this and tell me if there is any errors: mysql_query("SELECT * FROM tab_table WHERE id IN (".$str.") ORDER BY id") or die(mysql_error()); Quote Link to comment https://forums.phpfreaks.com/topic/150658-solved-query-withour-order/#findComment-791478 Share on other sites More sharing options...
trq Posted March 23, 2009 Share Posted March 23, 2009 Actually, having re-read the question. mysql_query(" SELECT * FROM tab_table WHERE id IN ($str) ORDER BY FIELD(id,$str); "); should do it. Quote Link to comment https://forums.phpfreaks.com/topic/150658-solved-query-withour-order/#findComment-791480 Share on other sites More sharing options...
crashmaster Posted March 23, 2009 Author Share Posted March 23, 2009 Try this and tell me if there is any errors: mysql_query("SELECT * FROM tab_table WHERE id IN (".$str.") ORDER BY id") or die(mysql_error()); without any error.. Query accepted by sql engine without any problem.. by order is stil "BY id ASC" .. (( Quote Link to comment https://forums.phpfreaks.com/topic/150658-solved-query-withour-order/#findComment-791484 Share on other sites More sharing options...
crashmaster Posted March 23, 2009 Author Share Posted March 23, 2009 Actually, having re-read the question. mysql_query(" SELECT * FROM tab_table WHERE id IN ($str) ORDER BY FIELD(id,$str); "); should do it. Works !! Thx a lot ) Quote Link to comment https://forums.phpfreaks.com/topic/150658-solved-query-withour-order/#findComment-791487 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.