MyBB.de Forum

Normale Version: Usermap Entfernungsbestimmung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
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 
Laut Fehlermeldung existiert die MySQL-Funktion ACOS(x) nicht. Da würde ich mal beim Hoster anfragen.
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
(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.
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 ?
Nein, die $db->query-Funktion führt alles unverändert aus.
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 )
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.
Sad leider gleiches Ergebnis - ich verstehs nicht mehr
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());
}
?>
Seiten: 1 2