Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 5%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 392 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

2lame4skill

Mitglied

Dabei seit: 03.06.2004

Beiträge: 45

 

1 Zum Seitenanfang

Donnerstag, 30. Dezember 2004, 00:19

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
Wer Rechtschreibfehler findet darf sie behalten !
 

Shurakai

Foren Gott

Dabei seit: 05.02.2003

Beiträge: 2 181

 

2 Zum Seitenanfang

Donnerstag, 30. Dezember 2004, 01:01

Ich verstehe zwar nich was genau du willst aber schonmal BETWEEN probiert?
 

2lame4skill

Mitglied

Dabei seit: 03.06.2004

Beiträge: 45

 

3 Zum Seitenanfang

Donnerstag, 30. Dezember 2004, 01:23

neee inwiefern benutzt man das da?
Wer Rechtschreibfehler findet darf sie behalten !
 

jperl

Super Moderator

Dabei seit: 09.04.2003

Beiträge: 3 453

 

4 Zum Seitenanfang

Donnerstag, 30. Dezember 2004, 10:34

http://dev.mysql.com/doc/mysql/de/Compar…rs.html#IDX1096

es gibt sowas, das heißt google und jeder darf es benutzen :P

jperl
Konfuzius [chinesischer Philosoph (551 - 479 v. Chr.)]
Das Entscheidende am Wissen ist, daß man es beherzigt und anwendet.
 

Fab

Lebende Foren Legende

Dabei seit: 30.03.2003

Beiträge: 1 635

 

5 Zum Seitenanfang

Donnerstag, 30. Dezember 2004, 10:52

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:

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

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Fab« (30. Dezember 2004, 16:16)

 

teddy

Routinier

Dabei seit: 18.11.2003

Beiträge: 312

 

6 Zum Seitenanfang

Donnerstag, 30. Dezember 2004, 11:44

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.
 

Fab

Lebende Foren Legende

Dabei seit: 30.03.2003

Beiträge: 1 635

 

7 Zum Seitenanfang

Donnerstag, 30. Dezember 2004, 16:15

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
 

2lame4skill

Mitglied

Dabei seit: 03.06.2004

Beiträge: 45

 

8 Zum Seitenanfang

Donnerstag, 30. Dezember 2004, 19:34

Genau das mein ich :)
danke Fabo :)

wo wir gerade dabe sind...

mit Order By nimmt er nur die erste ziffer wenn ich damit sortiere passiert folgendes :

1
2
21
3
4
5
51
6

usw.
Wer Rechtschreibfehler findet darf sie behalten !
 

jperl

Super Moderator

Dabei seit: 09.04.2003

Beiträge: 3 453

 

9 Zum Seitenanfang

Donnerstag, 30. Dezember 2004, 23:46

dann hast du wahrscheinlich einen falschen felddatentyp.

verwendest du varchar? oder welchen?

jperl
Konfuzius [chinesischer Philosoph (551 - 479 v. Chr.)]
Das Entscheidende am Wissen ist, daß man es beherzigt und anwendet.
 

2lame4skill

Mitglied

Dabei seit: 03.06.2004

Beiträge: 45

 

10 Zum Seitenanfang

Sonntag, 2. Januar 2005, 01:12

ja ich hätte int oder allgemein zahlen nehmen müssen stimmts? ^^'


und zurück zum thema ich würde gerne wissen wie ich alles nahe einem wert suchen kann.

mfg
2lame
Wer Rechtschreibfehler findet darf sie behalten !
 

jperl

Super Moderator

Dabei seit: 09.04.2003

Beiträge: 3 453

 

11 Zum Seitenanfang

Sonntag, 2. Januar 2005, 11:04

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.

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 :P

jperl
Konfuzius [chinesischer Philosoph (551 - 479 v. Chr.)]
Das Entscheidende am Wissen ist, daß man es beherzigt und anwendet.
 

2lame4skill

Mitglied

Dabei seit: 03.06.2004

Beiträge: 45

 

12 Zum Seitenanfang

Sonntag, 2. Januar 2005, 12:29

man kann es vorübergehend verwenden :(

aber das ist doch echt unschön ...

gibs kein <=> ? *gg*

nee aber es muss doch eine möglichkeit geben
Wer Rechtschreibfehler findet darf sie behalten !
 

Shurakai

Foren Gott

Dabei seit: 05.02.2003

Beiträge: 2 181

 

13 Zum Seitenanfang

Sonntag, 2. Januar 2005, 13:28

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
 

cccpmik

Foren Gott

Dabei seit: 04.09.2007

Beiträge: 2 995

 

14 Zum Seitenanfang

Freitag, 5. Dezember 2008, 11:31

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
Mein kleines Projekt
-Cruel Online-
 

Norvares

unregistriert

15 Zum Seitenanfang

Samstag, 6. Dezember 2008, 18:59

eine saubere Alternative wäre noch eine Gespeicherte Prozedur in MySQL anzulegen im Sinne von:

Suche im Radius i nach Spielern,
wenn > 3 gefunden erhöhe i.
wenn mehr als 3 gebe diese zurück.

Das wäre eine saubere datenbanknahe Alternative.

Gruß

Norvares