Re: need to do a string replace of "asc" to "desc" or "desc" to "asc" first occurrence only



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.

.



Relevant Pages

  • Re: need to do a string replace of "asc" to "desc" or "desc" to "asc" first occurrence only
    ... You have an error in your SQL syntax; ... I'll keep looking at it but apparently it chops the ORDER BY clause ... I have a SQL "ORDER BY" clause that will be configured like $orderBy 's ... // it was in descending order ...
    (comp.lang.php)
  • Re: need to do a string replace of "asc" to "desc" or "desc" to "asc" first occurrence only
    ... [PHP] ... Produced the following MySQL query syntax error: ... You have an error in your SQL syntax; ... I'll keep looking at it but apparently it chops the ORDER BY clause ...
    (comp.lang.php)
  • Re: CROSS JOIN
    ... > was that depreciating the original FROM .. ... WHERE syntax would never ... > The problem is that the WHERE clause is done after the FROM clause. ... but thats just outer join stuff. ...
    (comp.databases)
  • Re: Extending define with where clause
    ... > parallel to lambda*, which implements automatic handling of keyword ... "where" clause is used that the new syntax really matters. ... introduced with the help of let, letrec, letrec*, or named let -- are ...
    (comp.lang.scheme)
  • Re: Not Exists joining 2 tables
    ... "'code' is a bad name for a key column" is a valid complaint. ... EXISTS clause with a correlated subquery properly, ... SQL+ syntax and start using the ANSI SQL syntax that seems ... Then the only criteria in the where clause ...
    (comp.databases.ms-sqlserver)