PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sortieren bei Select-Abfrage mit IN


Sk3y
06.09.2006, 20:45:51
hi, ich habe folgendes problem:

es sollen 49 felder erzeugt werden, welche ein koordinaten system mit 7x7
feldern darstellen sollen. insgesamt habe ich ein system aus 800x800 feldern
und will, dass wenn man bei 800 ist, dass er wieder bei 1 anfängt... also dass
er z.b. ein feld erstellt, was auf der x achse von 798 - 4 anzeigt und auf
der y achse von 800 - 6 anzeigt
nur das problem ist, das er mit der untenstehenden abfrage nicht so ordnet:
798, 799, 800, 1, 2, 3, 4
sondern ganz normal wie zahlen halt zu ordnen sind:
1, 2, 3, 4, 798, 799, 800

wie bekommt man es nun hin, dass er das richtig sortiert?


$sql = mysql_query("SELECT sid,x,y,typ,visible,bebaut,name FROM inseln WHERE x IN (".$x1.",".$x2.",".$x3.",".$x4.",".$x5.",".$x6.",".$x7.") AND y IN (".$y1.",".$y2.",".$y3.",".$y4.",".$y5.",".$y6.",".$y7.")");

hoffe es weiss jemand ne lösung
mfg

ltb
06.09.2006, 21:25:54
was ist mit "ORDER BY x,y" ?
also zuerst nach x, dann nach y?

(wenn du access grad zur hand hast, erstell dir ne testtabelle 'insel' mit den wichtigen daten, und stell dir die sql abfrage dort grafisch zusammen und kopier dann den SELECT ausdruck.)

Sk3y
06.09.2006, 21:38:02
schon probiert, zeigt er es wieder wie beschreiben an.

meikel (†)
07.09.2006, 03:04:47
wie bekommt man es nun hin, dass er das richtig sortiert?
Wenn Du keine Sortierung vorgibst, darfste auch nich meckern, wenn nicht sortiert wird.

hoffe es weiss jemand ne lösung
Überdenke Dein Konzept. Eine MySQL Datenbank arbeitet mit Mengen und nicht mit Koordinaten.

Sk3y
07.09.2006, 15:50:52
ja, wenn ich ORDER BY angeben, hilft mir das auch net weiter, weil er dann die
koordinaten nach 1,2,3,4, 798,799,800 ordnet... aber ich will ja 798,799,800,1,2,3,4

meikel (†)
07.09.2006, 21:33:06
koordinaten nach 1,2,3,4, 798,799,800 ordnet... aber ich will ja 798,799,800,1,2,3,4
Dann wirst Du ein Problem haben, wenn Du kein ergänzendes Sortiermerkmal hast.

Was bitte schön muß gleich 798 sein um als "Koordinate 798" zu gelten:
x, y, sid oder sonstwas?