Re: [PHP] sorting results in PHP
Bill Try this: while ($crow=mysql_fetch_array($cresult)) { $therow[]=$crow; } sort($therow); André Cupini Programador [EMAIL PROTECTED] NeoBiz - fábrica de internet http://www.neobiz.com.br - Original Message - From: bill To: [EMAIL PROTECTED] Sent: Monday, March 17, 2003 11:54 AM Subject: [PHP] sorting results in PHP I have a query that returns results including the fields Year, Month, and Day that I want to sort by date. Because of the nature of the query (it includes a GROUP BY statement), I cannot sort it in the query. How can I sort the results? I tried to use asort() while designating the field but that didn't work. while ($crow=mysql_fetch_array($cresult)) { $therow[]=$crow; } asort($therow[Year]); reset($therow); asort($therow[Month]); reset($therow); asort($therow[Day]); reset($therow); ideas? kind regards, bill -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] sorting results in PHP
Hi André, Sorting like that doesn't get it sorted by date. Each row has a lot of fields. It actually needs to be sorted three times by three fields, Year, Month, and Day. Because the query uses a GROUP BY statement, I can't sort it in the query. André cupini wrote: Bill Try this: while ($crow=mysql_fetch_array($cresult)) { $therow[]=$crow; } sort($therow); André Cupini Programador [EMAIL PROTECTED] NeoBiz - fábrica de internet http://www.neobiz.com.br - Original Message - From: bill To: [EMAIL PROTECTED] Sent: Monday, March 17, 2003 11:54 AM Subject: [PHP] sorting results in PHP I have a query that returns results including the fields Year, Month, and Day that I want to sort by date. Because of the nature of the query (it includes a GROUP BY statement), I cannot sort it in the query. How can I sort the results? I tried to use asort() while designating the field but that didn't work. while ($crow=mysql_fetch_array($cresult)) { $therow[]=$crow; } asort($therow[Year]); reset($therow); asort($therow[Month]); reset($therow); asort($therow[Day]); reset($therow); ideas? kind regards, bill -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] sorting results in PHP
bill wrote: Hi André, Sorting like that doesn't get it sorted by date. Each row has a lot of fields. It actually needs to be sorted three times by three fields, Year, Month, and Day. Because the query uses a GROUP BY statement, I can't sort it in the query. MySQL offers a DATE column type. You can extract a day, year, or month from this, without having to maintain three separate tables, using DATE_FORMAT. You can also sort by DATE in the query. Would this not be better for your situation? Erik -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] sorting results in PHP
Use temporary table, it is simple and fast bill wrote: I have a query that returns results including the fields Year, Month, and Day that I want to sort by date. Because of the nature of the query (it includes a GROUP BY statement), I cannot sort it in the query. How can I sort the results? kind regards, bill -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] sorting results in PHP
Sorting like that doesn't get it sorted by date. Each row has a lot of fields. It actually needs to be sorted three times by three fields, Year, Month, and Day. Because the query uses a GROUP BY statement, I can't sort it in the query. Why? I still don't see why you can't use an ORDER BY clause. ORDER BY date_column DESC Which will order by year, month, then day. The order by is applied after the GROUP BY, which will accomplish the same thing that you're trying to do in PHP, only much faster. ---John W. Holmes... PHP Architect - A monthly magazine for PHP Professionals. Get your copy today. http://www.phparch.com/ André cupini wrote: Bill Try this: while ($crow=mysql_fetch_array($cresult)) { $therow[]=$crow; } sort($therow); André Cupini Programador [EMAIL PROTECTED] NeoBiz - fábrica de internet http://www.neobiz.com.br - Original Message - From: bill To: [EMAIL PROTECTED] Sent: Monday, March 17, 2003 11:54 AM Subject: [PHP] sorting results in PHP I have a query that returns results including the fields Year, Month, and Day that I want to sort by date. Because of the nature of the query (it includes a GROUP BY statement), I cannot sort it in the query. How can I sort the results? I tried to use asort() while designating the field but that didn't work. while ($crow=mysql_fetch_array($cresult)) { $therow[]=$crow; } asort($therow[Year]); reset($therow); asort($therow[Month]); reset($therow); asort($therow[Day]); reset($therow); ideas? kind regards, bill -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] sorting results in PHP
Aha. Comments like yours made me look again. It turns out that I could use ORDER BY with a GROUP BY but I couldn't have it before a HAVING. Specifically, I had SELECT ... GROUP BY $detailsdb.eid ORDER BY Year, Month, Day HAVING foobar = $numcatchoices To fix it I changed the order to SELECT ... GROUP BY $detailsdb.eid HAVING foobar = $numcatchoices ORDER BY Year, Month, Day thanks, bill John W. Holmes wrote: Sorting like that doesn't get it sorted by date. Each row has a lot of fields. It actually needs to be sorted three times by three fields, Year, Month, and Day. Because the query uses a GROUP BY statement, I can't sort it in the query. Why? I still don't see why you can't use an ORDER BY clause. ORDER BY date_column DESC Which will order by year, month, then day. The order by is applied after the GROUP BY, which will accomplish the same thing that you're trying to do in PHP, only much faster. ---John W. Holmes... PHP Architect - A monthly magazine for PHP Professionals. Get your copy today. http://www.phparch.com/ André cupini wrote: Bill Try this: while ($crow=mysql_fetch_array($cresult)) { $therow[]=$crow; } sort($therow); André Cupini Programador [EMAIL PROTECTED] NeoBiz - fábrica de internet http://www.neobiz.com.br - Original Message - From: bill To: [EMAIL PROTECTED] Sent: Monday, March 17, 2003 11:54 AM Subject: [PHP] sorting results in PHP I have a query that returns results including the fields Year, Month, and Day that I want to sort by date. Because of the nature of the query (it includes a GROUP BY statement), I cannot sort it in the query. How can I sort the results? I tried to use asort() while designating the field but that didn't work. while ($crow=mysql_fetch_array($cresult)) { $therow[]=$crow; } asort($therow[Year]); reset($therow); asort($therow[Month]); reset($therow); asort($therow[Day]); reset($therow); ideas? kind regards, bill -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php