Hallo Norbert,
ich sag da nur tausend Dank, die ganze Sache läuft ohne Probleme.
Hab ans Ende die NOT LIKES wieder eingefügt und den Rest noch nach lname sortieren lassen - suuuuper.
$query = "
select '1' as SortField, lname, fname
from members
where lname like 'M%'
union
select '2', lname, fname
from members
where lname like 'S%'
union
select concat('3', lname), lname, fname
from members
where lname not like 'M%'
and lname not like 'S%'
order by SortField,lname
";
Ein letzte Frage noch:
Wenn ich jetzt mehr als zwei Buchstaben (nicht nur M und S) als "Vorsortierung" angeben will, muss ich dann einfach noch
mehrere
union
select '[X]', lname, fname
from members
where lname like '[Y]%'
und die Anzahl der unions+1 ins Concat setzten? So:
union
select concat('[Anzahl union+1]', lname), lname, fname
Am liebsten würde ich die "Vorsortierung" in einem Array Speichern und das dann Abarbeiten:
$array_vorsort=array("M","S","E","G");
for($x=0;$x<count($array_vorsort);$x++)
{
$vorsort1 .= "select '".$x."' as SortField, lname, fname where lname like '".$array_vorsort[$x]."%' union";
$vorsort2 .= "lname not like '".$array_vorsort[$x]."%%' and";
}
... und dann irgendwie so:
$concat=$x+1;
$query = "
$vorsort1
select concat('$concat', lname), lname, fname
from members
where
$vorsort2
order by SortField,lname
";
...leider klappt meine Version nicht!
Ich sag nochmal vielen, vielen Dank - hätte nie gedacht, dass man das irgendwie lösen kann und ich schon garnicht ...
Gruss Frank