
Datumsangabe 0000-00-00 führt zu DB-Fehler, eine Bitte (General)
Hallo
neues Problem:
Wenn ich die Kategorie rechts von einem Eintrag anklicke, also z.B. (Allgemein)BITTE zuerst LESEN! Forum-Richtlinien - Fritz, 29.05.2019, 15:03 [*] [!] [○] [x] (Allgemein)
dann erhalte ich folgende Fehlermeldungen:
Fatal error: Uncaught mysqli_sql_exception: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND spam_list.id IS NULL AND (sticky = 2 OR category = '4')' at line 1 in .../forum/includes/index.inc.php:76 Stack trace: #0 .../forum/includes/index.inc.php(76): mysqli_query(Object(mysqli), ' AND spam_list....') #1 .../forum/index.php(138): include('...') #2 {main} thrown in .../forum/includes/index.inc.php on line 76
ich habe mal deine Fehlermeldung anonymisiert, soweit ich es konnte, und habe den betreffenden Query aus dem PHP-Code und den Angaben in der Fehlermeldung rekonstruiert, soweit mir das mit der Website von Github möglich war.
SELECT COUNT(*) FROM " . $db_settings['forum_table'] . " AS ft LEFT JOIN ( SELECT eid FROM " . $db_settings['akismet_rating_table'] . " WHERE " . $db_settings['akismet_rating_table'] . ".spam = 1 UNION SELECT eid FROM " . $db_settings['b8_rating_table'] . " WHERE " . $db_settings['b8_rating_table'] . ".spam = 1 ) AS spam_list ON spam_list.eid = ft.id WHERE pid = 0 AND spam_list.id IS NULL AND (sticky = 2 OR category = '4')
@Micha: Selektiert wird eine anonyme Spalte (COUNT(*)
), wobei die Postingtabelle mit einem UNION-SELECT über die Spam-Tabellen gejoint wird. Im UNION-SELECT wird aus den Spam-Tabellen die Spalte eid
ausgewählt. In den folgenden WHERE-Klauseln der äußeren Abfrage wird aber darauf geprüft, ob die Spalte id
(ohne "e", "eid" versus "id"!) NULL
ist. Das haut doch nicht hin, oder?
Tschö, Auge
--
Trenne niemals Müll, denn er hat nur eine Silbe!