Welcome, Guest. Please Login or Register.
November 28, 2024, 08:50:34 AM
Home Help Search Log in Register
News: SMF is the next generation in forum software, almost completely re-written from the ground up, make sure you don't fall for cheap imitations that suffer from feature bloat!

YaBB SE Community  |  German User Help  |  Hilfe zu YaBB SE  |  Datenbankfehler - Dislay.php « previous next »
Pages: [1] Reply Ignore Print
Author Topic: Datenbankfehler - Dislay.php  (Read 2958 times)
Sternchen
Noobie
*
Posts: 35


Lächle und die Welt lächelt zurück :-)

Datenbankfehler - Dislay.php
« on: January 28, 2004, 10:18:07 PM »
Reply with quote

YaBB SE Version: 1.5.2 to 1.5.4
PHP Version: 4.3.4
MySQL Version: 4.0.x
Server Plattform: Windows 2000, XP, or 2003

Problem Beschreibung:
Hallo zusammen,

ich habe im ErrorLog dieses hier gefunden. Wie kann ich das abstellen. Hab seit gut einem halben Jahr nichts mehr verändert.

Datenbankfehler: 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 '' at line 4
Datei: C:\www\ob0509\Sources\Display.php
Zeile: 95


Gruss Sternchen
Logged
P_man
Jr. Member
**
Posts: 55


I'm a llama!

Re:Datenbankfehler - Dislay.php
« Reply #1 on: January 28, 2004, 11:05:05 PM »
Reply with quote

hi sternchen,

poste mal bitte paar zeilen aus dem angegebenen bereich deiner display herüber. (sagen wir zw 80-110)

grüßle P
Logged
Sternchen
Noobie
*
Posts: 35


Lächle und die Welt lächelt zurück :-)

Re:Datenbankfehler - Dislay.php
« Reply #2 on: January 28, 2004, 11:22:13 PM »
Reply with quote


   //Redirect to page & post with new messages -- Omar Bazavilvazo
   if ($start == 'new')
   {
      // Check if a log exists, so we can go to next unreaded message page
      $request = mysql_query("
         SELECT GREATEST(IFNULL(lt.logTime, 0), IFNULL(lmr.logTime,0)) AS logtime, COUNT(m.ID_MSG), MAX(m.ID_MSG)
         FROM {$db_prefix}topics AS t
            LEFT JOIN {$db_prefix}log_topics AS lt ON (lt.ID_TOPIC=t.ID_TOPIC AND lt.ID_MEMBER=$ID_MEMBER)
            LEFT JOIN {$db_prefix}log_mark_read AS lmr ON (lmr.ID_BOARD=t.ID_BOARD AND lmr.ID_MEMBER=$ID_MEMBER)
            LEFT JOIN {$db_prefix}messages AS m ON (m.ID_TOPIC=t.ID_TOPIC)
         WHERE (t.ID_TOPIC = $viewnum)
         GROUP BY t.ID_TOPIC") or database_error(__FILE__, __LINE__);

      list($ltLastRead, $numMessages, $newestMessage) = mysql_fetch_row($request);

      $request = mysql_query("
         SELECT COUNT(*)
         FROM {$db_prefix}messages
         WHERE ID_TOPIC = $viewnum
            AND posterTime <= $ltLastRead") or database_error(__FILE__, __LINE__);
            
      list($numReadMessages) = mysql_fetch_row($request);
      $numUnreadMessages = $numMessages - $numReadMessages;

      if ($modSettings['viewNewestFirst'] == '1')
         $Page2Show = floor(($numUnreadMessages == 0 ? 0 : $numUnreadMessages - 1) / $maxmessagedisplay) * $maxmessagedisplay;
      else
         $Page2Show = floor(($numReadMessages  == $numMessages ? $numReadMessages - 1 : $numReadMessages) / $maxmessagedisplay) * $maxmessagedisplay;

      if ($numUnreadMessages > 0)
      {
         $request = mysql_query("
            SELECT MIN(ID_MSG)
            FROM {$db_prefix}messages
            WHERE ID_TOPIC = $viewnum
               AND posterTime > $ltLastRead") or database_error(__FILE__, __LINE__);
         list($firstUnreadMessage) = mysql_fetch_row($request);
         $newMsgID = "#msg$firstUnreadMessage";
      }
      elseif ($modSettings['viewNewestFirst'] == '1')
         $newMsgID = "#msg$newestMessage";
      else
         $newMsgID = '#lastPost';


und das ist die Zeile 95:
AND posterTime <= $ltLastRead") or database_error(__FILE__, __LINE__);

das ist die 8 letzte Zeile von unten nach oben gezählt.
Hoffentlich kannst Du etwas damit anfangen.

Gruss Sternchen
Logged
P_man
Jr. Member
**
Posts: 55


I'm a llama!

Re:Datenbankfehler - Dislay.php
« Reply #3 on: January 28, 2004, 11:46:41 PM »
Reply with quote

also der ganze code sieht bei mir haar genauso aus und läuft.

kann keinen fehler finden. außer das die betreffende zeile weiter oben steht ;)

AND posterTime <= $ltLastRead") or database_error(__FILE__, __LINE__);
Logged
SnowCrash
Full Member
***
Posts: 110


Re:Datenbankfehler - Dislay.php
« Reply #4 on: January 29, 2004, 10:52:16 AM »
Reply with quote

Hmm... Sternchen? Bist Du Dir mit der MySQL Version sicher?

Ansonsten hätte ich zwei Ideen...

Einmal könntest Du den Teil

SELECT GREATEST(IFNULL(lt.logTime, 0), IFNULL(lmr.logTime,0)) AS logtime, COUNT(m.ID_MSG), MAX(m.ID_MSG)

gegen

SELECT MAX(IFNULL(lt.logTime, 0), IFNULL(lmr.logTime,0)) AS logtime, COUNT(m.ID_MSG), MAX(m.ID_MSG)

austauschen und dann noch

     WHERE ID_TOPIC = $viewnum
              AND posterTime > $ltLastRead") or database_error(__FILE__, __LINE__);


gegen

     WHERE ID_TOPIC = $viewnum
              AND posterTime > ".(int)$ltLastRead) or database_error(__FILE__, __LINE__);


und vielleicht noch

        WHERE ID_TOPIC = $viewnum
           AND posterTime <= $ltLastRead") or database_error(__FILE__, __LINE__);


gegen

        WHERE ID_TOPIC = $viewnum
           AND posterTime <= ".(int)$ltLastRead) or database_error(__FILE__, __LINE__);


... vorher aber ne Sicherheitskopie Deiner Display.php anlegen!

Der Fehler könnte 2 Gründe haben... einmal das GREATEST in der ersten DB-Abfrage (GREATEST wird nicht von allen MySQL-Versionen unterstützt) und einmal die $ltLastRead Variable... wenn die nicht gefüllt wird, dann kommt nen SQL-Fehler... durch das (int) ist die Variable = 0 wenn sie nicht gefüllt ist...

Aber ob das Dein Problem 100% löst... keine Ahnung... dazu kenn ich Dein Boar dnicht gut genug.... (installierte Mods, etc.)
Logged

It's better to be hated for who you are
then to be loved for who
you are not...
[/b][/i]
P_man
Jr. Member
**
Posts: 55


I'm a llama!

Re:Datenbankfehler - Dislay.php
« Reply #5 on: January 29, 2004, 12:58:19 PM »
Reply with quote

ich würde mal auf letzteres tippen, daß die lastread vereinzeld nich gefüllt ist. sternchens frage sah nich so dramatisch aus, als daß das öfter wäre und ihr forum zusammenbräche.

P
Logged
Pages: [1] Reply Ignore Print 
YaBB SE Community  |  German User Help  |  Hilfe zu YaBB SE  |  Datenbankfehler - Dislay.php « previous - next »
 


Powered by MySQL Powered by PHP YaBB SE Community | Powered by YaBB SE
© 2001-2003, YaBB SE Dev Team. All Rights Reserved.
SMF 2.1.4 © 2023, Simple Machines
Valid XHTML 1.0! Valid CSS

Page created in 0.016 seconds with 21 queries.