Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.40 veröffentlicht (28.05.26)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Usermap Entfernungsbestimmung
#1
ich habe das plugin Usermap (1.1) von Paretje link mybbcoder

jetzt möchte ich eine Suchmaske erstellen, in der ich angeben kann suche User im Umkreis von X km

leider bekomme ich eine Fehlermeldung, das die SQL-Befehle nicht bekannt sind.
sende ich den gleichen Befehl direkt auf der Datenbank ab, bekomme ich meine Resultate.

MyBB has experienced an internal SQL error and cannot continue.
SQL Error:
1305 - FUNCTION DBNAME.ACOS does not exist


Nun meine Frage: ist die Funktion $query = $db->query($sql_query); um einige Befehle limitiert?

Der Query mit 333 km als Beispiel anbei anbei:

PHP-Code:
SELECT u.uid, u.username, u.usermap_lat , u.usermap_lon FROM mybb_users u WHERE 6367.46 * ACOS (COS( RADIANS( u.usermap_lat ) ) * COS (RADIANS( 49.31 )) * (SIN (RADIANS( u.usermap_lon ) ) * SIN (RADIANS( 10.7475 )) + COS (RADIANS( u.usermap_lon ) ) * COS(RADIANS( 10.7475 ))) + SIN(RADIANS( u.usermap_lat ) ) * SIN(RADIANS( 49.31 ))) < 333 ORDER BY u.username
Zitieren
#2
Laut Fehlermeldung existiert die MySQL-Funktion ACOS(x) nicht. Da würde ich mal beim Hoster anfragen.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#3
Hallo Michael,

wie schon gesagt wenn ich auf dem phpmyadmin den gleichen Befehl absetze funktioniert es ja.

sprich es geht nur nicht, wenn ich es über mybb laufen lasse
Zitieren
#4
(06.02.2009, 20:57)DerGoth schrieb: Nun meine Frage: ist die Funktion $query = $db->query($sql_query); um einige Befehle limitiert?
Nein. Wenn du dir die Funktion query() in der Datei inc/db_*db*.php mal ansiehst wirst du feststellen, dass die Abfrage unverändert an die Datenbank geschickt wird.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#5
Okay ich komme der Sache näher.
Mein Query der wirklich verarbeitet wird ist nicht der oben genannte, sondern ein von mybb modifizierte. wahrscheinlich nimmt die inc/db_*db*.php irgendwo den Datenbanknamen mit in die Funktion hinein.

sprich der an die Datenbank gesendete Befehl ist nicht ACOS sondern DBNAME.ACOS.

Das müsste man unterbinden. Aber wie ?
Zitieren
#6
Nein, die $db->query-Funktion führt alles unverändert aus.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#7
Hallo Dragon,

Danke dass Du mitliest. Soll jetzt nicht pampig klingen, jedoch versteh ich's nicht: Und warum bekomme ich von phpmyAdmin ein Ergebnis und einen Fehler von mybb?
( Ich kann die Fehlermeldung vom mybb in den phpmyadmin kopieren und bekomme Ergebnisse )
Zitieren
#8
Versuche es mal bitte mit
PHP-Code:
$query = mysql_query($sql_query);
statt
PHP-Code:
$query = $db->query($sql_query);
Wie schon gesagt, der Query wird eigentlich unverändert an die Datenbank geschickt unter Angabe des Verbindungslinks.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#9
Sad leider gleiches Ergebnis - ich verstehs nicht mehr
Zitieren
#10
Funktioniert es außerhalb vom MyBB?
PHP-Code:
<?php $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!$link) { die('Verbindung nicht möglich : ' . mysql_error()); } $db_selected = mysql_select_db('foo', $link); if (!$db_selected) { die ('Kann foo nicht benutzen : ' . mysql_error()); } $sql_query = "DEIN QUERY"; $result = mysql_query($sql_query); if (!$result) { die('Ungültige Abfrage: ' . mysql_error()); } ?>

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren