Ankündigung

Einklappen
Keine Ankündigung bisher.

Newseintrag in Datenbank bearbeiten

Einklappen

Neue Werbung 2019

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

  • falscherprophet
    hat ein Thema erstellt Newseintrag in Datenbank bearbeiten.

    Newseintrag in Datenbank bearbeiten

    Heyho,
    ich bin gerade dabei mir selbst ein Script für meine Seite zu schreiben mit ACP etc und habe daher mal mit Datenbanken angefangen. Ich habe die Tabelle "News" (beinhaltet Titel, Datum, Inhalt, Timestamp und ID), worein per Formular (welches bestens funktioniert) Newseinträge eingetragen werden, welche dann auf der Mainpage angezeigt werden. Soweit alles gut, auch das Datenbanken löschen klappt soweit, nur wenn ich auf den Bearbeiten Button klicke und dann halt eine textarea mit dem Inhalt des Newsfeldes erscheint und ich den Text ändern will und auf abschicken klicke, bekomme ich folgenden Error:

    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 3
    Der Code lautet wie folgt , der schreiben soll:

    PHP-Code:
    <?php 
        
    include('dbconnect.php'); 
        
    $date date('d.m.Y'); 
        if(
    $_GET['action'] == 'edit'){

        
    $sql mysql_query("SELECT * FROM News WHERE ID = ".$_GET['id']) or die(mysql_error());
        
    $data mysql_fetch_array($sql);
    ?>
    <form name="news" method="post" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>?action=<?php echo $_GET['action']; ?>&id=<?php echo $_GET['id']; ?>">
    <textarea name="content" rows="5" cols="35" ><? echo $data['Inhalt'];  ?></textarea> 
    <input type="submit" value="Abschicken" accesskey="s">
    </form>   
    <?php
            
    if ($_POST) {
        
    $sql2 mysql_query("UPDATE
                             News
                            SET
                             Inhalt = '"
    .$_POST['content']."' 
                            WHERE ID = "
    .$_GET['id']) 
              or die(
    mysql_error());
              echo 
    'UPDATE 
                     News 
                    SET 
                     Inhalt = '
    .$_POST['content'].
                    WHERE ID = '
    .$_GET['id'];
            }
        }
        if(
    $_GET['action'] == 'delete'){
        
    $sql3 mysql_query("DELETE FROM
                          News
                         WHERE ID = "
    .$_GET['id'])
              or die(
    mysql_error());
            echo 
    'Eintrag mit der ID '.$_GET['id'].' erfolgreich gelöscht!';
        }

                if (
    $_POST) {
                
    $ID $_POST['identify'];
                
                
                
    $add "DELETE FROM 
                         News
                        WHERE ID = 
    $ID";
                
                
    $newnews mysql_query($add) or die(mysql_error());

                
                }
                
    ?>
    wäre echt nett, wenn ihr mir helfen könntet =)

    Cheers

  • falscherprophet
    antwortet
    Hahaha oh gott bin ich ein trottel >.<

    Der inhalt wurde die ganze Zeit schon geändert, ich habs nur nicht gemerkt weil ich immer nur auf den Titel geschaut habe ... boah bin ich ... Okay, trotzdem Danke für die Hilfe >.<

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    PHP-Code:
    $sql2="UPDATE
                     News
                    SET
                     Inhalt = '" 
    $contd "'
                    WHERE ID = '"
    $ident "';"
    PHP-Code:
                $add "DELETE FROM 
                         News
                        WHERE ID = 
    $ID"
    PHP-Code:
        $sql3="DELETE FROM
                News
               WHERE ID = "
    .$ident
    Vielleicht auch einfach mal auf eine Methode „einigen“, die ID in die Query zu bekommen.

    Einen Kommentar schreiben:


  • comlar
    antwortet
    Schon mal die SQL-Abfrage z.B. in phpMyAdmin laufen lassen? Funktioniert sie da?

    Einen Kommentar schreiben:


  • falscherprophet
    antwortet
    immernoch die Selbe Fehlermeldung ...

    Einen Kommentar schreiben:


  • comlar
    antwortet
    Mach mal das Semikolon in der SQL-Anweisung weg.

    Einen Kommentar schreiben:


  • falscherprophet
    antwortet
    ich vergaß, der aktuelle code lautet wiefolgt ...

    PHP-Code:
    <?php 
        
    include('dbconnect.php'); 
        
    $date date('d.m.Y'); 
        if(
    $_GET['action'] == 'edit'){
        
    $ident=mysql_real_escape_string(intval($_GET['id']));

        
    $sql="SELECT * FROM News WHERE ID = ".$ident;
        
    $sqlqry mysql_query($sql) or die(mysql_error());
        
        
    $data mysql_fetch_array($sqlqry);
    ?>
    <form name="news" method="post" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>?action=<?php echo $_GET['action']; ?>&id=<?php echo $_GET['id']; ?>">
    <textarea name="content" rows="5" cols="35" ><? echo $data['Inhalt'];  ?></textarea> 
    <input type="submit" value="Abschicken" accesskey="s">
    </form>   
    <?php
            
    if ($_POST) {
        
    $contd=mysql_real_escape_string($_POST['content']);
        
    $ident=mysql_real_escape_string(intval($_GET['id']));
        
    $sql2="UPDATE
                     News
                    SET
                     Inhalt = '" 
    $contd "'
                    WHERE ID = '"
    $ident "';";
               
        
    $sql2qry=mysql_query($sql2) or die(mysql_error());
        
              echo(
    $sql2); 
                    
            }
        }
        if(
    $_GET['action'] == 'delete'){
        
    $ident=mysql_real_escape_string(intval($_GET['id']));
        
    $sql3="DELETE FROM
                News
               WHERE ID = "
    .$ident;
               
        
    $sql3qry=mysql_query($sql3) or die(mysql_error());
              
            echo 
    'Eintrag mit der ID '.$ident.' erfolgreich gelöscht!';
        }

                if (
    $_POST) {
                
    $ID mysql_real_escape_string($_POST['identify']);
                
                
                
    $add "DELETE FROM 
                         News
                        WHERE ID = 
    $ID";
                
                
    $newnews mysql_query($add) or die(mysql_error());

                
                }
                
    ?>
    also ist die maßgebende stelle
    PHP-Code:
    if ($_POST) {
        
    $contd=mysql_real_escape_string($_POST['content']);
        
    $ident=mysql_real_escape_string(intval($_GET['id']));
        
    $sql2="UPDATE
                     News
                    SET
                     Inhalt = '" 
    $contd "'
                    WHERE ID = '"
    $ident "';";
               
        
    $sql2qry=mysql_query($sql2) or die(mysql_error());
        
              echo(
    $sql2); 
                    
            }
        } 

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    Sorry, aber Du schaust die falsche Query an. Massgeblich ist das:
    PHP-Code:
    $sql2="UPDATE 
                     News 
                    SET 
                     Inhalt = \'.
    $contd.\' 
                    WHERE ID = "
    .$ident
    , nicht Dein echo. Und nun mal genau hinsehen.

    Einen Kommentar schreiben:


  • falscherprophet
    antwortet
    ok hab das geändert aber nun mal zurück zum Problem:

    Warum spackt das bei zB der Abfrage ?

    PHP-Code:
    UPDATE
     News 
    SET
     Inhalt 
    'hhh' 
    WHERE ID '29'
    bekomm immernoch den Error

    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 3

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Auf den ersten Blick - Ja. Allerdings sollte man der Konseqenz halber Zahlen auch als solche benutzen, also:
    PHP-Code:
    $ident=(int)$_GET['id'];
    //oder
    $ident=intval($_GET['id']); 

    Einen Kommentar schreiben:


  • falscherprophet
    antwortet
    So besser ?

    PHP-Code:
    <?php 
        
    include('dbconnect.php'); 
        
    $date date('d.m.Y'); 
        if(
    $_GET['action'] == 'edit'){
        
    $ident=mysql_real_escape_string($_GET['id']);

        
    $sql="SELECT * FROM News WHERE ID = ".$ident;
        
    $sqlqry mysql_query($sql) or die(mysql_error());
        
        
    $data mysql_fetch_array($sqlqry);
    ?>
    <form name="news" method="post" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>?action=<?php echo $_GET['action']; ?>&id=<?php echo $_GET['id']; ?>">
    <textarea name="content" rows="5" cols="35" ><? echo $data['Inhalt'];  ?></textarea> 
    <input type="submit" value="Abschicken" accesskey="s">
    </form>   
    <?php
            
    if ($_POST) {
        
    $contd=mysql_real_escape_string($_POST['content']);
        
    $ident=mysql_real_escape_string($_GET['id']);
        
    $sql2="UPDATE 
                     News 
                    SET 
                     Inhalt = \'.
    $contd.\' 
                    WHERE ID = "
    .$ident;
               
        
    $sql2qry=mysql_query($sql2) or die(mysql_error());
        
              echo 
    'UPDATE 
                     News 
                    SET 
                     Inhalt = "'
    .$contd.'" 
                    WHERE ID = ".$ident'

                    
            }
        }
        if(
    $_GET['action'] == 'delete'){
        
    $ident=mysql_real_escape_string($_GET['id']);
        
    $sql3="DELETE FROM
                News
               WHERE ID = "
    .$ident;
               
        
    $sql3qry=mysql_query($sql3) or die(mysql_error());
              
            echo 
    'Eintrag mit der ID '.$ident.' erfolgreich gelöscht!';
        }

                if (
    $_POST) {
                
    $ID mysql_real_escape_string($_POST['identify']);
                
                
                
    $add "DELETE FROM 
                         News
                        WHERE ID = 
    $ID";
                
                
    $newnews mysql_query($add) or die(mysql_error());

                
                }
                
    ?>

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    btw: Such mal anch SQL-Injections

    Einen Kommentar schreiben:


  • falscherprophet
    antwortet
    PHP-Code:
    Inhalt '" .$_POST['content']. "' 
    so stehts doch drin also

    Inhalt = ' STRING ' eigentlich müsstes so doch klappen ...

    Einen Kommentar schreiben:


  • Lenki
    antwortet
    wwwww ist doch ein String, den musst du auch so im Query kenntlich machen. Wenn du nicht weißt, wie: Google ist dein Freund

    Einen Kommentar schreiben:


  • falscherprophet
    antwortet
    hier ists:
    UPDATE News SET Inhalt = wwwww WHERE ID = 29 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 3

    Einen Kommentar schreiben:

Lädt...
X