MySQL Fehlermeldung ändern von datensatz

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MySQL Fehlermeldung ändern von datensatz

    hallo

    ich habe ein tabelle in der datebank für news einträge u ich möchte im adminbereich news hinzufügen bearbeiten und löschen können. hinzufügen funktioniert auch nur wenn ich auf ändern oder löschen geh kommt immer diese fehlermeldung:
    Anfrage fehlgeschlagen: 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 1

    mein php code wo die datei geändert werden soll:
    PHP-Code:
    <?
    include('config.inc.php');
            $taste=$_POST["submit"];
            $datensatz=$_POST["datensatz"];
            if($taste == "loeschen")
            {
                echo '<h1>ACHTUNG es gibt kein Zur&uuml;ck!</h1>';

                
        
                
                $link = mysql_connect($dbhost, $dbuser, $dbpass)
                   or die("Keine Verbindung möglich: " . mysql_error());
                 mysql_select_db($dbName) or die("Auswahl der Datenbank fehlgeschlagen");
               $query = 'SELECT news.betreff, news.eintrag, news.datum, news.id FROM news WHERE (((news.id)='.$datensatz.'));';
                $result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());
                $i=1;
                while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) 
                {
                   $j=1;
                   foreach ($line as $col_value) 
                   {
                       $daten[$i][$j]=$col_value;
                       $j++;
                   }
                   $i++;
                }
                mysql_free_result($result);
                mysql_close($link);
            
                $anz_ze=$i;
                $anz_sp=$j;
                echo '<table border="0">';
                echo '<tr><td width="750">';
                echo '<table border="0"  width="750"><tr class="button"><td> &nbsp;&nbsp;'.$daten[1][1].' schreibt: <td align="right" >'.$daten[1][3].'</td></tr></table>';
                
                echo '</td></tr>';        
                echo '<tr>';
                echo '<td>'.$daten[1][2].'</h5><br><br><br></td>';
                echo '</tr>';
                echo '</table>';
                
                ?>        
                 <form name="form1" method="post" action="news.php">
                    <input name="datensatz" type="hidden" value="<?php echo $datensatz?>">
                    <input class="button" type="submit" name="submit" value="loeschen">
                    <input class="button" type="submit" name="submit" value="abbrechen" >    
                 </form>
                <?    
            }
            if($taste == "aendern")
            {
                echo '<h1>ACHTUNG! Es gibt kein Zur&uuml;ck!</h1>';


                

                $link = mysql_connect($dbhost, $dbuser, $dbpass)
                   or die("Keine Verbindung möglich: " . mysql_error());
                mysql_select_db($dbName) or die("Auswahl der Datenbank fehlgeschlagen");
                $query = 'SELECT news.betreff, news.eintrag, news.datum, news.id FROM news WHERE (((news.id)='.$datensatz.'));';
                $result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());
                $i=1;
                while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) 
                {
                   $j=1;
                   foreach ($line as $col_value) 
                   {
                       $daten[$i][$j]=$col_value;
                       $j++;
                   }
                   $i++;
                }
                mysql_free_result($result);
                mysql_close($link);
        ?>
        <form name="form1" method="post" action="news.php" >

            <table border="0">
                <tr><td width="100">
                <tr class="button"><td>&nbsp;&nbsp; <input name="name" type="text" value="<? echo $daten[1][1]; ?>"> schreibt:</td></tr>    
                <tr>
                <td><textarea name="eintr" cols="90" rows="8"><? echo $daten[1][2]; ?></textarea></td>
                </tr>
                </table>
                    
                    <input name="datensatz" type="hidden" value="<? echo $daten[1][5]; ?>">
                    <input class="button" type="submit" name="submit" value="aendern">
                    <input class="button" type="submit" name="submit" value="abbrechen" >    
                 </form>
                <?    
            }


    ?>
    bitte um hilfe warum diese fehlemeldung immer kommt!!!

  • #2
    Hallo,

    dort wo
    Code:
    (((news.id)='.$datensatz.'))
    steht, nimmst du vorne drei Klammern weg und hinten zwei und vor dem = die auch und aus
    Code:
    '.$datensatz.'
    machst du
    Code:
    '.mysql_real_escape_string($datensatz, $link).'
    um dich gegen SQL Injections abzusichern.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Wenn du dir deinen Quelltext nicht zusammenkopieren sondern selbst schreiben würdest, wüsstest du warum. Alternativ kannst du aber auch einfach die Fehlermeldung lesen. Da steht haargenau, was dein Problem ist.
      [FONT="Helvetica"]twitter.com/unset[/FONT]

      Shitstorm Podcast – Wöchentliches Auskotzen

      Kommentar


      • #4
        ich habs von meinem gästbuch gleich übernommen deswegen, das wilde zusammenkopieren...

        Kommentar


        • #5
          Danke für die Antwort, aber es kommt trotzdem noch eine ähnliche fehlermeldung

          use near '' at line 1

          edit: sry das ich jz gleich 2x mal gepostet habe ^^

          Kommentar


          • #6
            Semikolon weg!

            Kommentar


            • #7
              ich musste nur andere anführungszeichen setzten ^^ danke für die hilfe
              PHP-Code:
              $query "SELECT news.betreff, news.eintrag, news.datum, news.id FROM news WHERE news.id='.mysql_real_escape_string($datensatz$link).';"

              Kommentar


              • #8
                Das ist Käse! Du suchst nun nach Datensätzen, die in der Spalte id den String ".mysql_re....)." stehen haben. Eigentlich willst du aber Datensätze suchen, die in der Spalte id das Ergebnis des Funktionsaufrufs stehen haben.
                Zuletzt geändert von onemorenerd; 20.10.2009, 12:41.

                Kommentar

                Lädt...
                X