So hier jetzt mal mein fertiges ergebnis.
Code:
SELECT s.allianz, s.name, s.zusatz, s.punkte, s.p_flotte, p.coords_sysx, p.coords_sysy, p.coords_planet,
ROUND(SQRT((66 - p.coords_sysx) * (66 - p.coords_sysx) + (62 - p.coords_sysy) * (62 - p.coords_sysy)), 2) AS Entfernung FROM w3_spieler s
LEFT JOIN w3_planeten p ON s.pk=p.spieler_pk
WHERE ROUND( SQRT( IF((66- p.coords_sysx ) * ( 66 - p.coords_sysx )<0,( 66 - p.coords_sysx ) * ( 66 - p.coords_sysx )*-1,( 66 - p.coords_sysx ) * ( 66 - p.coords_sysx )) + IF(( 62 - p.coords_sysy ) * ( 62 - p.coords_sysy )<0,( 62 - p.coords_sysy ) * ( 62 - p.coords_sysy )*-1,( 62 - p.coords_sysy ) * ( 62 - p.coords_sysy )) ) , 2 ) < '10'
ORDER BY s.name ASC
LIMIT 0 , 50
PHP-Code:
$query = sprintf("SELECT s.allianz, s.name, s.zusatz, s.punkte, s.p_flotte, p.coords_sysx, p.coords_sysy, p.coords_planet,
ROUND(SQRT((%s - p.coords_sysx) * (%s - p.coords_sysx) + (%s - p.coords_sysy) * (%s - p.coords_sysy)), 2) AS
Entfernung
FROM w3_spieler s
LEFT JOIN w3_planeten p ON s.pk=p.spieler_pk
%s %s
ORDER BY %s %s
LIMIT %s , %s",
$_POST['x'],
$_POST['x'],
$_POST['y'],
$_POST['y'],
$where,
implode(" AND ", $sop),
$_SESSION["sort_op"],
$_SESSION["richtung"],
$start,
$_SESSION["proseite"]);
Kann ich daran noch etwas verbessern?