1. Dashboard
  2. Artikel
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. HTML - Webmaster Forum
  2. Programmierung - Entwickler Forum
  3. Datenbank Forum - MySQL und andere Datenbanksoftware

Fehler 1064

  • blackybaby
  • 31. März 2017 um 10:27
1. offizieller Beitrag
  • blackybaby
    Anfänger
    Beiträge
    3
    • 31. März 2017 um 10:27
    • #1

    Hallo zusammen

    Bin Datenbanken am Lernen und noch ganz am Anfang. Helfe jemandem sein Forum wieder aufzubaun und nun bekommen wir folgende Fehlermeldung. Wie und vorallem wo kann ich das beheben?
    In der misc.php steht nichts von dem Limit -24,24 drin. Wo kann ich noch schaun wo kann man das ändern? Bitte helft mir!

    Hab folgende Fehlerausgabe:
    Database error in WoltLab Burning Board (2.3.6 pl2): Invalid SQL: SELECT smiliepath, smilietitle, smiliecode,catname FROM bb1_smilies WHERE catname='' ORDER BY smilieid ASC LIMIT -24, 24
    mysql error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '-24, 24' at line 1
    mysql error number: 1064
    mysql version: 5.5.52-MariaDB
    php version: 5.3.29
    Date: 27.03.2017 @ 22:13
    Script: /wbb2/misc.php?action=moresmilies


    Könnt ihr mir da bitte weiterhelfen?
    Häng euch mal den Teil mit den Smilies aus der misc.php mit an

    PHP
    /** more smilies popup **/
    if($action=="moresmilies") {
      $lang->load("MISC");
    
      $all_smilies = $lang->items['LANG_MISC_CATEGORIE_ALL_SMILIE'];
    
    
      if(isset($_GET['catname'])) $catname=$_GET['catname'];
      elseif(isset($_POST['catname'])) $catname=$_POST['catname'];
      else $catname="";
    
    
      if($catname=="")
      {
        $standard = $db->query_first("SELECT * FROM bb".$n."_smilies_categorie WHERE standard=1");
        $catname=$standard['catname'];
      }
    
    
      $sel_cate[$catname]=" selected=\"selected\"";
    
    
      if($catname==$all_smilies){
        list($smiliecount) = $db->query_first("SELECT COUNT(*) FROM bb".$n."_smilies");
        $smiliecount2=$smiliecount;
      }else{
        list($smiliecount2) = $db->query_first("SELECT COUNT(*) FROM bb".$n."_smilies");
        list($smiliecount) = $db->query_first("SELECT COUNT(*) FROM bb".$n."_smilies WHERE catname='$catname'");
      }
    
    
      $smilie_categorie="<option value=\"$all_smilies\" selected=\"selected\">$all_smilies($smiliecount2)</option>";
      $result = $db->query("SELECT * FROM bb".$n."_smilies_categorie ORDER BY catorder ASC");
    
    
      while($row = $db->fetch_array($result))
      {
        if($row['catname']==$catname) $smilie_categorie.="<option value=\"$row[catname]\"$sel_cate[$catname]>$row[catname]($row[counter])</option>";
        else $smilie_categorie.="<option value=\"$row[catname]\">$row[catname]($row[counter])</option>";
      }
    
    
      if(isset($_GET['page']))
      {
        $page=intval($_GET['page']);
        if($page==0) $page=1;
      }else $page=1;
    
    
      if(isset($_POST['smilieseite'])) $page=$_POST['smilieseite'];
    
    
      $smiliesperpage="24";
    
    
      $pages = ceil($smiliecount/$smiliesperpage);
      if($page>$pages) $page=$pages;
    
    
      if($pages>1 && $catname<>$all_smilies) $pagelink=makepage_smilies($smiliecount,"misc.php?action=moresmilies&catname=$catname".$SID_ARG_2ND,$page,$smiliesperpage);
      elseif($pages>1 && $catname==$all_smilies) $pagelink=makepage_smilies($smiliecount,"misc.php?action=moresmilies&catname=$all_smilies".$SID_ARG_2ND,$page,$smiliesperpage); 
      else $pagelink="";
    
    
      $rightorleft = "left";
      if($showsmiliesrandom==1)
      {
        if($catname==$all_smilies) $result = $db->unbuffered_query("SELECT smiliepath, smilietitle, smiliecode,catname FROM bb".$n."_smilies ORDER BY RAND()",0,$smiliesperpage,$smiliesperpage*($page-1));
        else $result = $db->unbuffered_query("SELECT smiliepath, smilietitle, smiliecode,catname FROM bb".$n."_smilies WHERE catname='$catname' ORDER BY RAND()",0,$smiliesperpage,$smiliesperpage*($page-1));
      }else{
        if($catname==$all_smilies) $result = $db->unbuffered_query("SELECT smiliepath, smilietitle, smiliecode,catname FROM bb".$n."_smilies ORDER BY smilieorder ASC",0,$smiliesperpage,$smiliesperpage*($page-1));
        else $result = $db->unbuffered_query("SELECT smiliepath, smilietitle, smiliecode,catname FROM bb".$n."_smilies WHERE catname='$catname' ORDER BY smilieid ASC",0,$smiliesperpage,$smiliesperpage*($page-1));
      }
    
    
      $j=0;
      $popup_smiliesbits="";
      while($row = $db->fetch_array($result))
      {
        $row['smilietitle']=getlangvar($row['smilietitle'], $lang);
        $row['smiliename']=htmlconverter($row['smiliecode']);
        $row['smiliecode']=addcslashes($row['smiliecode'], "'\\");
        $row['smiliepath'] = replaceImagefolder($row['smiliepath']);
    
        eval ("\$popup_smiliesbits .= \"".$tpl->get("popup_smiliesbits")."\";");
    
        if ($rightorleft == "left")
        {
          $j++;
           $rightorleft = "right";
        }else $rightorleft = "left";
      }
     
      $j++;
      $tdclass=getone($j,"tableb","tablea");
      if($rightorleft == "right") $popup_smiliesbits .= "<td class=\"$tdclass\"> </td><td class=\"$tdclass\"> </td></tr>";    
     
      eval("\$tpl->output(\"".$tpl->get("popup_smilies")."\");");    
    }
    Alles anzeigen
  • Bandit
    Gast
    • 31. März 2017 um 12:45
    • #2

    Da hilft nur:

    Richtig debuggen

    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
    3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
    4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
    6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

  • Arne Drews
    Moderator
    Reaktionen
    5
    Beiträge
    1.871
    • 1. April 2017 um 14:36
    • Offizieller Beitrag
    • #3

    Hi,

    Das LIMIT gehört vor das ORDER BY und ob Du dort einen negativen Offset haben darfst, bin ich mir grad nicht sicher.
    Das musst Du mal in der Doku nachlesen.

    Gruß Arne

    http://www.php-rocks.de » Tutorials » using composer packages without composer

Tags

  • forum
  • server
  • board
  • post
  • smilies
  • version
  • php
  • fehler
  • page
  • array
  • counter
  • error
  • popup
  • limit
  • 5.5
  • action
  • sql
  • select
  • datenbanken
  • woltlab
  • burning board
  • isset
  • name
  • invalid
  • teil
  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
Zitat speichern