Mysql - Alles suchen nahe "wert" ?
Hi 
ich mach grad nen schönes script und möchte gern alles suchen was nahe zweier werte ist.
beispiel :
man kann Galaxie und System eingeben und dann werden die Planeten die am nächsten dieser Werte sind ausgegeben.
z.B. Galxie 10 System 5
Member:
Galaxie 10 System 9
Galaxie 10 System 2
Galaxie 11 System 39
usw.
gibs da ne funktion in Mysql oder in Php?
mfg und danke im voraus
2lame

ich mach grad nen schönes script und möchte gern alles suchen was nahe zweier werte ist.
beispiel :
man kann Galaxie und System eingeben und dann werden die Planeten die am nächsten dieser Werte sind ausgegeben.
z.B. Galxie 10 System 5
Member:
Galaxie 10 System 9
Galaxie 10 System 2
Galaxie 11 System 39
usw.
gibs da ne funktion in Mysql oder in Php?
mfg und danke im voraus
2lame
Wer Rechtschreibfehler findet darf sie behalten !
http://dev.mysql.com/doc/mysql/de/Compar…rs.html#IDX1096
es gibt sowas, das heißt google und jeder darf es benutzen
jperl
es gibt sowas, das heißt google und jeder darf es benutzen

jperl
Konfuzius [chinesischer Philosoph (551 - 479 v. Chr.)]
Das Entscheidende am Wissen ist, daß man es beherzigt und anwendet.
Das Entscheidende am Wissen ist, daß man es beherzigt und anwendet.
Hi
2lame4skill meint etwas Anderes.
Er meint sowas wie ein BETWEEN das seinen Radius immer um 1 vergrössert.
Also hier werden die Planet gesucht, die am nächsten beim Planeten 10 liegen:
Man könnte das natürlich mit einer Schleife lösen, aber ist das nicht ein wenig zu Systemlastig?
Gibt es dazu nicht irgendeine Funktion, dass er die Zahlen sucht, die z.B der Zahl 10 am nächsten liegen?
Mfg Fab
2lame4skill meint etwas Anderes.
Er meint sowas wie ein BETWEEN das seinen Radius immer um 1 vergrössert.
Also hier werden die Planet gesucht, die am nächsten beim Planeten 10 liegen:
|
|
PHP-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 |
<?php
$sql = "SELECT
blubb
FROM
bla
WHERE
foobar
BETWEEN 9 AND 11;";
// dann wenn er nichts gefunden hat, sucht er BETWEEN 8 AND 12 usw. , bis er einen Eintrag gefunden hat.
?>
|
Man könnte das natürlich mit einer Schleife lösen, aber ist das nicht ein wenig zu Systemlastig?
Gibt es dazu nicht irgendeine Funktion, dass er die Zahlen sucht, die z.B der Zahl 10 am nächsten liegen?
Mfg Fab
-->Vokaline - schneller und effizienter Wörter lernen<-- (kostenlos!)
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Fab« (30. Dezember 2004, 16:16)
Zitat
Original von Fab
![]()
PHP-Quelltext
1 2 3 4 5 6 7 8 9<?php $sql = "SELECT blubb FROM bla BETWEEN 9 AND 11;"; // dann wenn er nichts gefunden hat, sucht er BETWEEN 8 AND 12 usw. , bis er einen Eintrag gefunden hat. ?>
muß das nicht heißen:
|
|
PHP-Quelltext |
1 2 3 4 5 6 7 8 9 10 |
<?php
$sql = "SELECT
blubb
FROM
bla
WHERE bla //!?
BETWEEN 9 AND 11;";
// dann wenn er nichts gefunden hat, sucht er BETWEEN 8 AND 12 usw. , bis er einen Eintrag gefunden hat.
?>
|
Dieses Schreiben wurde maschinell erstellt und bedarf keiner Unterschrift.
Hi
Doch eigentlich schon.
Es kommt ja jetzt auch nicht unbedingt, auf das an, wichtig ist, ob es nicht eine Funktion für das gibt.
Mfg Fab
Doch eigentlich schon.
Es kommt ja jetzt auch nicht unbedingt, auf das an, wichtig ist, ob es nicht eine Funktion für das gibt.
Mfg Fab
-->Vokaline - schneller und effizienter Wörter lernen<-- (kostenlos!)
ich weiß jetzt ned wirklich obs da ne funktion dazu gibt. aber ich mach dir mal nen vorschlag, der aber nicht wirklich schön ist. ich hoffe mal, dass der vorschlag auf deine mysql tabellenstruktur passt.
somit sucht er dir nen wert aus der db, der gleich oder kleiner ist als die galaxie die eingegeben wurde und der kleiner oder gleich ist wie das system nach dem gesucht wurde.
du kannst jetzt noch die <= zeichen durch >= ersetzen oder nur eins davon. so könntest du meiner meinung nach etwas unschön die ähnlichen galaxien und systeme erhalten
100 % untested
jperl
|
|
PHP-Quelltext |
1 |
$sql = "SELECT * FROM tabelle WHERE galaxie<=".$eingabe_galaxie." AND system<='".$eingabe_system."' LIMIT 1";
|
somit sucht er dir nen wert aus der db, der gleich oder kleiner ist als die galaxie die eingegeben wurde und der kleiner oder gleich ist wie das system nach dem gesucht wurde.
du kannst jetzt noch die <= zeichen durch >= ersetzen oder nur eins davon. so könntest du meiner meinung nach etwas unschön die ähnlichen galaxien und systeme erhalten
100 % untested

jperl
Konfuzius [chinesischer Philosoph (551 - 479 v. Chr.)]
Das Entscheidende am Wissen ist, daß man es beherzigt und anwendet.
Das Entscheidende am Wissen ist, daß man es beherzigt und anwendet.
Zitat
Original von teddy
muß das nicht heißen:
![]()
PHP-Quelltext
1 2 3 4 5 6 7 8 9 10<?php $sql = "SELECT blubb FROM bla WHERE bla //!? BETWEEN 9 AND 11;"; // dann wenn er nichts gefunden hat, sucht er BETWEEN 8 AND 12 usw. , bis er einen Eintrag gefunden hat. ?>
Das ist doch wohl sowas von dermaßen egal ob es WHERE bla oder WHERE foobar heißt?
Achja, dein Kommentar hätte nen dicken fetten SQL-Syntaxfehler verursacht, schau dir mal die Kommentiermöglichkeiten bei mySQL an: http://dev.mysql.com/doc/mysql/de/Comments.html
also falls das thema veraltet ist tut es mir leid. aber so weit ich das weis werden bei browsergames die entfernung zwischen 2 punkten mit dem sogenannten A* algorythmus ermittelt. damit musst du halt die positionen deiner galaxien und planeten in der datenbank defenieren und dann die entfernung zwischen dem eingegeben mit den restlichen werten vergleich und alle die zb kleiner sind als 2 oder so ausgeben
MFG
MFG
Mein kleines Projekt
-Cruel Online-
-Cruel Online-



'