Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


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.uidu.usernameu.usermap_lat u.usermap_lon FROM 

mybb_users u WHERE 

6367.46 
ACOS (COSRADIANSu.usermap_lat ) ) * COS (RADIANS49.31 )) * 
(
SIN (RADIANSu.usermap_lon ) ) * SIN (RADIANS10.7475 )) + 
COS (RADIANSu.usermap_lon ) ) * COS(RADIANS10.7475 ))) + 
SIN(RADIANSu.usermap_lat ) ) * SIN(RADIANS49.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, 19: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