Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Fehler beim ausführen der Anfrage:You have an error in your SQL syntax; check the man

  1. #1
    Registrierter Benutzer
    Registriert seit
    14.04.2006
    Beiträge
    74

    Fehler beim ausführen der Anfrage:You have an error in your SQL syntax; check the man

    Hallo,
    wäre super wenn mir jemand helfen könnten.
    Der Code hat shcon mal bei einem anderen Webspaceanbieter funktioniert.
    Jetzt bin ich umgezogen und bekomme es nicht mehr hin.

    Fehlermeldung:

    Fehler beim ausführen der Anfrage: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 2

    Weis jemand was der Fehler ist ? Irgenwo im Web habe ich gelesen, dass es an der Zeile

    PHP-Code:
    $result = @mysql_query("SELECT eBook.ideBook,eBook.Titel,eBook.Autor,Thema.Thema AS Thema FROM eBook 
    LEFT JOIN Thema AS Thema ON (eBook.Thema=Thema.idThema) ORDER BY 
    $ord;"); 
    liegen könnte ? Wei die wohl Iterativ ausgeführt wird, oder so.

    Hab nut leider zu wenig Ahnung um die Zeilen umschriben zu können.
    Hoffe auf euch Profis! Danke!

    Chris


    PHP-Code:

    <HTML>
    <HEAD>
     
    <!-- Hintergrundfarbe -->
    <BODY BGCOLOR="#101010">

    <!-- Textfarbe  -->
    <BODY TEXT="#FFFFFF">

    <!-- Link Farbe -->
    <BODY LINK="#FF60FF">  
    <!--  Besuchter Link  -->
    <BODY VLINK="#FF2020">  
    <!--   Aktiver Link -->
    <BODY ALINK="#FF2020"> 
    <!--   Standard Schriftgrösse -->
    <BASEFONT SIZE=5>

    </HEAD>


    <BODY>


    <?php
    $db_host   
    =       "localhost";
    $db_user   =       "*****";
    $db_pass   =       "*****";

    $datab  =          "*****";



    function 
    print_result_table($result){
      
    // Tabellenanfang
      
    echo "<table border='1'>\n";
      
    // 1. Tabellenzeile Anfang
      
    echo "  <tr>\n";
      
    // Kopfzeile der Tabelle schreiben
      // Als Links schreiben, wird auf die Bezeichnung Spalte geklickt, 
      // wird die Tabelle nach der angeklickten Spalte sortiert
      
    for ($i 0$i mysql_num_fields($result); $i++)
      {
         echo 
    "<td><font face=\"Verdana, Arial, Helvetica, sans-serif;\" size=\"1\"><CENTER><a href=test2.php?ord=".mysql_field_name($result,$i).">".mysql_field_name($result,$i)."</a></CENTER></font></td>";
      }
      
    // Überschrift für manuell hinzuegfügte Spalte
       
    echo "<td><font face=\"Verdana, Arial, Helvetica, sans-serif;\" size=\"1\"><CENTER>Infos</CENTER></font></td>";
      
    //echo '<td><font face="'.$fontFamily.'"><center>Infos</center></font></td>';
      
      // 1. Tabellenzeile Ende
      
    echo "  </tr>\n";

      
    // Alle Ergebniszeilen durchgehen
      
    while ($row mysql_fetch_row($result)){
        
    // Tabellenzeilen-Anfang
        
    echo "  <tr>\n";
        
    // Alle Spalten durchgehen
        
    for ($i 0$i mysql_num_fields($result); $i++)
        {
          
    // Link als Hyperlink anzeigen 
          // Link ist in Spalte 4 
          
    if ($i==4)
          {
            echo 
    "<td><a href=$row[$i]>$row[$i]</a></td>";  
          }
          else
          {
            
    // Falls kein Inhalt leerzeichen ausgeben, damit komplette Tabellenrahem gezeichnet wird    
            
    if ($row[$i] == "")
            {
               echo 
    "<td><font face=\"Verdana, Arial, Helvetica, sans-serif;\" size=\"1\"><CENTER>-</CENTER></font></td>";
            }
            else
            { 
                echo 
    "<td><font face=\"Verdana, Arial, Helvetica, sans-serif;\" size=\"1\"><CENTER>$row[$i]</CENTER></font></td>";
            }
          }
          
        }
        
    // Spalte mit "Mehr Infos" hinzufügen 
          
    echo "<td><font face=\"Verdana, Arial, Helvetica, sans-serif;\" size=\"1\"><CENTER><a href=mehr_infos.php?id=$row[0]>Mehr Info's</a></CENTER></font></td>";
        
    // Tabellenzeilen-Ende
        
    echo "  </tr>\n";
      }
      
    // Tabellenende
      
    echo "</table>\n";
    }


    // Hauptprogramm

    /* Verbindung zur Datenbank aufbauen */
    $db = @mysql_connect($db_host,$db_user,$db_pass)
          or die(
    mysql_error());
    @
    mysql_select_db($datab,$db) or die(mysql_error());

    /* HTML-Startcode ausgeben */
    echo "<html>\n<body>\n";

    /* SQL-Abfrage */
    //$result = @mysql_query("SELECT * FROM eBook");
    // verkürzte tabelle anzeigen
    //$result = @mysql_query("SELECT ideBook,Titel,Autor,Thema FROM eBook ORDER BY $ord;");

    $result = @mysql_query("SELECT eBook.ideBook,eBook.Titel,eBook.Autor,Thema.Thema AS Thema FROM eBook 
    LEFT JOIN Thema AS Thema ON (eBook.Thema=Thema.idThema) ORDER BY 
    $ord;");

    if (!
    $result)
    {
      echo(
    "<p>Fehler beim ausführen der Anfrage:" mysql_error() . "</p>");  
    }
    else
    {
       
    print_result_table($result);
    }

    /* HTML-Endcode ausgeben */
    echo "</body>\n</html>\n";
    ?>

    </BODY>
    </HTML>

  2. #2
    Registrierter Benutzer
    Registriert seit
    05.05.2009
    Beiträge
    11
    $ord scheint nicht gefüllt zu sein,
    mach mal vor die Query ein

    echo "Ord: ".$ord;

  3. #3
    Registrierter Benutzer
    Registriert seit
    14.04.2006
    Beiträge
    74
    Hi,
    erstmal super danke für die schnelle Antwort.

    Du hast recht!
    Wenn ich die Zeile ohne ORDERED BY aufrufe wird mir die gewünschte Tabelle fehelrfrei angezeigt.

    Nur ganz verstehen tu ich's noch nicht ganz.

    Ich müsste doch das Skript dann so aufrufen :

    http://chri5.kilu.de/test2.php?ord=Titel

    damit ord gefüllt ist ? Das klappt aber nicht ?? Kannst du mir sagen warum ...


    Ich habe mal das ORDERED BY weggelassen und muss feststellen, dass die Tabelle angezeigt wird.

    http://chri5.kilu.de/test3.php

    Danke für die schnelle Hilfe,
    Chris
    Geändert von chris21 (01-09-2009 um 22:04 Uhr)

  4. #4
    Registrierter Benutzer
    Registriert seit
    05.05.2009
    Beiträge
    11
    dann ist register_globals auf off,
    nutze $_GET['ord']

    prüfe aber, das dort wirklich nur "ASC" oder "DESC" drin
    ist, ansonsten haste ne schöne SQL Injection

  5. #5
    Registrierter Benutzer
    Registriert seit
    14.04.2006
    Beiträge
    74
    Super,danke!

    Chris

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •