Koordinaten durchsuchen

mafiamix

Mitglied
Hallo,

ich hab ein Koordinatensystem und es wird eine Stelle aufgerufen, bei der einige Koordinaten "durchsucht" werden sollen. Das Durchsuchen von Einträgen zu den jeweiligen Koordinaten macht logischerweise die Datenbankabfrage, das ganze in einer for-Schleife geschrieben, sollen die Koordinaten aber automatisch erweitert werden.

Wenn ich jetzt einen Beispielwert mit den Koordinaten (3|0) benutze, sollen 2 Koordinaten nach links, nach unten, nach rechts und nach oben abgefragt werden.
Wie schon geschrieben, hab ich das ganze bisher mit einer for-Schleife versucht, so dass insgesamt eigentlich 8 Abfragen existieren müssten.
Allerdings kommt bei mir ein Problem und zwar wird die X-Koordinate immer weiter erhöht, während die Y-Koordinate immer gleich bleibt.

Hier mein bisheriger Code:

PHP:

In den Variablen $mainx1 und $mainy1 stehen jeweils die X- und Y-Werte. Am Anfang z. B. bei den gegebenen Koordinaten (3|0) werden 2 abgezogen, so dass gleich die Werte der linken Seite ermittelt werden können. Die for-Schleife macht insgesamt 8 Abfragen, so dass alle 8 Koordinaten in der DB abgefragt werden können. Bei der if-Schleife wird verglichen, ob die maximale Zahl von x schon erreicht ist (es sollen ja maximal nur 2 Koordinaten in die gleiche Richtung verglichen werden). Wenn ja, dann sollen sich normalerweise die X- und Y-Werte.
Irgendwo ist da aber ein Fehler drin. Mathe war auch noch nie meine Stärke und ich sitz da jetzt schon ein paar Stunden dran.

Wäre sehr nett, wenn ihr mir da weiterhelfen könnt.


Danke im Voraus
 
Zuletzt bearbeitet:
Hallo,

sehe ich das richtig, dass du zu einem Punkt X die umliegenden Felder O ablaufen willst, wie in folgender Skizze?
Code:
  O
  O
OOXOO
  O
  O
Wenn ja, dann würde ich das ein zwei nacheinander ablaufenden Schleifen erledigen, einmal horizontal und einmal vertikal.

Grüße, Matthias
 
Stimmt, genau so wie in der Skizze soll es sein.
Also

PHP:

statt der if-Schleife von vorhin hab ich grade ausprobiert. Funktioniert aber leider nicht. Jetzt werden nicht mal mehr die X-Koordinaten berechnet, sondern immer nur DB-Abfragen von der gleichen Koordinate gemacht.
 
Zuletzt bearbeitet:
statt der if-Schleife von vorhin hab ich grade ausprobiert.
Es gibt keine if-Schleifen. Ich meinte das eher so:
PHP:
for ($dx = -2; $dx <= 2; $dx++) {
  $x = $mainx1 + $dx;
  $y = $mainy1;
  // Abfragen etc.
}

for ($dy = -2; $dy <= 2; $dy++) {
  $x = $mainx1;
  $y = $mainy1 + $dy;
  // Abfragen etc.
}
Man könnte die beiden Schleifen dann natürlich auch zu einer zusammenfassen, wenn die Reihenfolge der Abarbeitung egal ist. Eventuell müsste man noch eine Überprüfung auf $dx == 0 bzw. $dy == 0 einbauen, damit die eigentliche Stelle nicht bearbeitet wird.

Grüße, Matthias
 

Neue Beiträge

Zurück