$orderBy = 's.app_date desc, s.last_name asc, s.first_name asc, s.mi asc';
if ($_REQUEST['willDesc']) {
$ascArray = array('asc' => 'desc', 'desc' => 'asc'); // ARRAY OF ALL ORDERING POSSIBILITIES
$junk = preg_match('/([\s\t]+)a|[de]sc(,?.*$)/i', $orderBy, $matchArray);
$orderBy = substr($orderBy, 0, strpos($orderBy, $matchArray[1])) . ' ' . $ascArray[$matchArray[1]] .
substr($orderBy, strpos($orderBy, $matchArray[1]) + strlen($matchArray[1]), strlen($orderBy));
}
Basic premise:
I have a SQL "ORDER BY" clause that will be configured like $orderBy 's value. However, the very first occurrence of "desc" might instead be "asc". If the very first occurrence is "asc", it must become "desc"; likewise, if the very first occurrence is "desc", it must become "asc".
I tried Regular Expressions but the pattern failed every single time to match and replace, so I gave up and tried a string function/RegExp code combination, also to no avail.
I am not sure how to make this work so I need help figuring out how to do this.
Thanx
Phil