mysql.php & mysql4.php des phpBB

PHP, Ajax, CSS, HTML, Javascript
Eben für die wirklich Harten, die alles selber machen.
Antworten
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

mysql.php & mysql4.php des phpBB

Beitrag von AmigaLink »

Ich nutze in meinem Lexicon Mod diesen Code zum ermitteln der Daten für die Letternavigation:

Code: Alles auswählen

// Which letters are present?
$sql = "SELECT DISTINCT ord(keyword) FROM " . LEXICON_ENTRY_TABLE;
if ( $categorie_id != 0 )
{
	$sql .= " WHERE cat = '$categorie_id'";
}

if ( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Error getting lexicon entrys', '', __LINE__, __FILE__, $sql);
}
$present_letters = ' ';
while($row = $db->sql_fetchrow($result)) $present_letters.=strtoupper(chr($row[0]));
$db->sql_freeresult($result);
Das Funktioniert auch einwandfrei. :)
Vorrausgesetzt man hat das phpBB nicht über die mysql4.php am laufen!!!
Denn wenn man in der config.php mysql4 einträgt, dann bleibt $present_letters leer. :(

Kann mir einer erklären warum das so ist und was ich dagegen tun kann?
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Besser so:

Code: Alles auswählen

// Which letters are present?
$sql = "SELECT DISTINCT ord(keyword) as character FROM " . LEXICON_ENTRY_TABLE;
if ( $categorie_id != 0 )
{
	$sql .= " WHERE cat = '$categorie_id'";
}

if ( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Error getting lexicon entrys', '', __LINE__, __FILE__, $sql);
}
$present_letters = ' ';
while($row = $db->sql_fetchrow($result)) $present_letters .= strtoupper(chr($row['character']));
$db->sql_freeresult($result);
Die Variante mit $row[0] ... [n] ist nicht die schnellste birgt auch Gefahren und wurde daher ab der 4er Version per default deaktiviert, daher besser immer solchen Berechnungen ein Alias geben und dieses ist dann abfragbar.
Damit bleibt man dann auch immer kompatibel.
Zuletzt geändert von oxpus am Fr 10.Jun, 2005 19:09, insgesamt 1-mal geändert.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Super - das Funktioniert.
Vielen dank!!!

Ich musste allerdings character gegen letters ersetzen, da character anscheinend eine reservierte bezeichnung ist und zu nem error führte.
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ach so, ja kann sein.
Hatte ich jetzt nicht drauf geachtet.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Macht ja nichts. Hauptsache das Problem ist gelöst und ich weis worauf ich ihn zukunft achten sollte.

Ich hab hier heute den ganzen Tag gesessen und nach ner Lösung gesucht. Konnte mir das Problem überhaupt nicht erklären (war eh zufall das ich rausgefunden hab woher es kommt) und war schon nahe dran eine komplett andere Ermittlungsmethode zu proggen. :rolleyes:
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Frag mich doch ;)
Aber schön daß wir wieder was gemeinsam gelernt haben:
Du, wie man sowas löst, ich, was org() bedeutet und character ein reserviertes SQL-Wort ist.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

:lol:
Fein das wir uns ergänzen. :D
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ja, ein echtes PHP-DreamTeam ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Antworten