MYSQL Where Clause - Radius je Column?

Joe

Erfahrenes Mitglied
Hallo Tutorials,

Ich würde gerne alle Datensätze innerhalb bestimmter Koordinaten abfragen.
Das klappt soweit auch jedoch nimmt er nicht den richtigen Radius je Tabellenzeile.
Der Radius ist aber Bedingung in der Whereklausel um die jeweiligen richtigen Datenssätze zu holen.

Funktioniert aber noch nicht wie gewünscht:
SQL:
SELECT
	ID,
	Radius,
	MPX,
	MPY,
	Intensity,
	Koords
FROM
	Strahlung
WHERE
	MPX >=$NearestKoordsX1-Radius AND MPX <$NearestKoordsX2+Radius
AND
	MPY >=$NearestKoordsY1-Radius AND MPY <$NearestKoordsY2+Radius
PHP:
if(mysql_num_rows($Strahlung)!= 0) {
	$k=0;
	while ($row = mysql_fetch_assoc($Strahlung)) {
		$IntensityMap=$row["Intensity"];
		$KoordsMap=$row["Koords"];
		$Strahl=unserialize($KoordsMap);
		foreach ($Strahl['X'] as $key => $value) {
			if ($value>=$NearestKoordsX1 AND $value<$NearestKoordsX2) {
				if ($Strahl['Y'][$key]>=$NearestKoordsX1 AND $Strahl['Y'][$key]<$NearestKoordsX2) {
					$data7[$k]['PosX'] = $value;
					$data7[$k]['PosY'] = $Strahl['Y'][$key];
					$data7[$k]['xray'] = $IntensityMap;
					$k++;
				}
			}
		}
	}
}

Wäre nett wenn ihr mir nen Denkanstoss geben könntet.
Gruss Joe.


EDIT: Sorry hat sich erledigt. Das Prob lag nicht bei MySQL sondern an:
X!=Y :)
PHP:
if ($value>=$NearestKoordsX1 AND $value<$NearestKoordsX2) {
				if ($Strahl['Y'][$key]>=$NearestKoordsX1 AND $Strahl['Y'][$key]<$NearestKoordsX2) {
so ists richtig:
PHP:
if ($value>=$NearestKoordsX1 AND $value<$NearestKoordsX2) {
				if ($Strahl['Y'][$key]>=$NearestKoordsY1 AND $Strahl['Y'][$key]<$NearestKoordsY2) {

Aber wenn noch jemand was zur Geschwindigkeit oder Performance einfällt würde ichs gerne wissen.
Danke.
 
Zuletzt bearbeitet von einem Moderator:
Mein Fehler, hatte angenommen er nimmt immer den ersten Radius aus col 1. Was offensichtlich nicht stimmt.
 
Was auch immer col1 ist - er nimmt so den Radius aus der Zeile in der er rechnet
 
column 1 meint Zeile 1 , mein Irrtum wie du grad bestätigst. Gut also rechnet er Zeile für Zeile durch so ists auch gewollt.

Ich hatte ne falsche IF-Abfrage wo ich 2mal mit $NearestKoordsX1 rechnete. Das sah dann in meiner Darstellung auf meiner Karte so aus als würde er einen falschen Radius nehmen.
So kanns manchmal gehen :D

EoT_Map.png
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück