Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.39 veröffentlicht (02.06.25)


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