Re: need to do a string replace of "asc" to "desc" or "desc" to "asc" first occurrence only
- From: "Justin Koivisto" <justin.koivisto@xxxxxxxxx>
- Date: 3 Feb 2006 23:22:03 -0800
comp.lang.php wrote:
Ok using your function:
[PHP]
if (!function_exists('change_first_order_flag')) {
function change_first_order_flag($orderBy){
$tmp = explode('__SPLIT__HERE__', preg_replace('`(asc|desc)`i',
'__SPLIT__HERE__$1', $orderBy));
if (count($tmp) > 1) {
// there are at least 2 elements
// therefore, it was in there at least once
if (substr(strtolower($tmp[1]), 0, 3) == 'des') { // it was in
descending order
$tmp[1] = 'as' . substr($tmp[1], 3);
} else { // it was in ascending order
$tmp[1] = 'des' . substr($tmp[1], 3);
}
}
return join($tmp);
}
}
[/PHP]
Produced the following MySQL query syntax error:
[quote]
Fatal error: You have an error in your SQL syntax; check the manual
that corresponds to your MySQL server version for the right syntax to
use near 'des, upper(s.student_firs' at line 1 using query:
[/quote]
I'll keep looking at it but apparently it chops the ORDER BY clause
incorrectly if the original ORDER BY clause contains ".. asc"
Phil
Change:
$tmp[1] = 'des' . substr($tmp[1], 3);
To:
$tmp[1] = 'des' . substr($tmp[1], 2);
That should do it... I was in a hurry to get out of the office, so i
didn't test it.
.
- Follow-Ups:
- References:
- need to do a string replace of "asc" to "desc" or "desc" to "asc" first occurrence only
- From: comp.lang.php
- Re: need to do a string replace of "asc" to "desc" or "desc" to "asc" first occurrence only
- From: Justin Koivisto
- Re: need to do a string replace of "asc" to "desc" or "desc" to "asc" first occurrence only
- From: comp.lang.php
- need to do a string replace of "asc" to "desc" or "desc" to "asc" first occurrence only
- Prev by Date: Re: An alternative popup...
- Next by Date: Reentrant POST
- Previous by thread: Re: need to do a string replace of "asc" to "desc" or "desc" to "asc" first occurrence only
- Next by thread: Re: need to do a string replace of "asc" to "desc" or "desc" to "asc" first occurrence only
- Index(es):
Relevant Pages
|