Fehlendes Verständnis beim Verlinkung in einem Form (PHP/MySQL)

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

  • Fehlendes Verständnis beim Verlinkung in einem Form (PHP/MySQL)

    siehe erst Beitrag 2 in diesem Thread
    Zuletzt geändert von lilo78; 18.09.2011, 13:53. Grund: Siehe Beitrag 2 in diesem Thread

  • #2
    Finde einfach den Fehler nicht (parse error)

    Hallo Leute,
    ich habe hier schon mal einen Thread geöffnet, aber komplett von neuen begonnen und habe mir folgendes Buch Einstieg in PHP 5.3 und MySQL 5.4: Für Programmieranfänger geeignet Galileo Computing: Amazon.de: Thomas Theis: Bücher zur Hilfe genommen.

    Das Buch ist echt toll und super gut beschrieben, aber nach 4maligen Durchsuchen nach den Fehler bin ich einfach mittlerweile am Ende und ich finde ihn einfach nicht.

    Folgende Fehlermeldung erscheint:
    PHP-Code:
    Parse errorsyntax errorunexpected '}' in /opt/lampp/htdocs/test.php on line 58 
    Zum Verständnis hier mal der komplette Code:
    PHP-Code:
    <html>
    <head>
    <link rel="stylesheet" type="text/css" href="style.css">
    <script type="text/javascript">
    function send(ak, id)
    {
        if(ak==0)
            document.f.ak.value = "in";
        else if(ak==1)
            document.f.ak.value= "up";
        else if(ak==2)
        {
                if (confirm("Datensatz mit ID " + id + " löschen?"))
                    document.f.ak.value = "de";
                else
                    return;
        }
        document.f.id.value = id;
        document.f.submit();
    }
    </script>
    </head>
    <body>
    <?php

    //DB Config includen
    require('includes/db_connect.php');

    //Aktion ausführen
    if(isset($_POST["ak"]))
    {
        
    //neu eintragen
        
    if($_POST["ak"]=="in")
        {
            
    $sqlab "insert into cds"
                
    .    "(interpret, titel) values ('"
                
    $_POST["interpret"][0] . "', '"
                
    $_POST["titel"][0] . "')";
            
    mysql_query($sqlab);
        }
        
        
    //ändern
        
    else if($_POST["ak"]=="up")
        {
            
    $id $_POST["id"];
            
    $sqlab "update cds set "
                
    "interpret = '" $_POST["interpret"][$id] . "', "
                
    "interpret = '" $_POST["titel"][$id] . "'"
                
    " where id = $id";
            
    mysql_query($sqlab);
        }
        
        
    //löschen
        
    else if($_POST["ak"]=="de")
        {
            
    $sqlab "delete from cds where id = " $_POST["id"];
            
    mysql_query($sqlab)
        }
    }

    //Form-Beginn
    echo "<form name'f' action='test.php' method='post'>";
    echo 
    "<input name='ak' type='hidden' />";
    echo 
    "<input name='id' type='hidden' />";

    //Tabellen-Beginn
    echo "\n\n<table>"
        
    "<tr>"
        
    "<td>Interpret</td>"
        
    "<td>Titel</td>"
        
    "</tr>";

    //Neuer Eintrag
    echo "\n\n<tr>"
        
    "<td><input name='interpret[0]' size='8' /></td>"
        
    "<td><input name='titel[0]' size='8' /></td>"
        
    "<td><a href='javascript:send(0,0);'>neu eintragen</a></td>"
        
    "</tr>";
        
    //Anzeigen
    $res mysql_query("select * from cds");

    //Alle vorhanden Datensätze im Array speichern
    while ($dsatz mysql_fetch_assoc($res))
    {
        
    $id $dsatz["id"];
        echo 
    "\n\n<tr>"
            
    "<td><input name='id[$id]' value='"
            
    $dsatz["id"] . "' size='8' /></td>"
            
    "<td><input name='interpret[$id]' value='"
            
    $dsatz["interpret"] . "' size='8' /></td>"
            
    "<td><input name='titel[$id]' value='"
            
    $dsatz["titel"] . "' size='8' /></td>"
            
    "<td><a href='javascript:send(1,$id);'>Edit</a>"
            
    "<a href='javascript:send(2,$id);'>DEL</a></td>"
            
    "</tr>";
    }
    //Tabellen- und Formende
    echo "</table>";
    echo 
    "</form>";
    ?>
    </body>
    </html>
    Es soll eine "}" Klammer zuviel sein, aber WO?

    Danke und schöne Grüße LILO

    Kommentar


    • #3
      In der Zeile, die PHP dir angibt?
      This is what happens when an unstoppable force meets an immovable object.

      Kommentar


      • #4
        Ja genau. Also im Body-Teil ...

        Kommentar


        • #5
          Schau dir die angegebene Zeile (und die darüber) mal genau an. Dann entdeckst du den Fehler bestimmt.

          Tip: Die Klammern passen, es fehlt allerdings etwas anderes sehr wichtiges...
          This is what happens when an unstoppable force meets an immovable object.

          Kommentar


          • #6
            Ohhhhhh danke für den Tipp
            Diese " ; " sind ja meistens daran schuld.

            Kommentar


            • #7
              Und nochmal ein großes OHHHH
              Ich habe mir heute das Kapitel in den o. g. Buch durchgelesen und versucht zu verstehen.
              Kann die Schritte und den Aufbau verstehen. Jetzt wird zwar alles dargestellt, ABER ich kann kein INSERT, UPDATE oder DELETE ausführen.
              Passiert gar nichts.

              Habe ich wieder i-wo nen Denkfehler?

              Kommentar


              • #8
                Hallo,

                hast du im Firebug überprüft, ob überhaupt ein POST-Request abgesetzt wird? Hast du in PHP Kontrollausgaben getätigt (z. B. in eine externe Log-Datei oder in einen <pre>-Block), um zu sehen, welche POST-Daten genau ankommen?

                Ich finde es nicht gut, alles in eine riesige Datei zu packen. Dort ist jetzt HTML-Code mit PHP-Ausgaben drin (was an sich in Ordnung ist), aber zusätzlich noch (und das könnte man vermeiden) Verarbeitungslogik, Datenbankkram (Statements), eigebetteter JS-Code.

                Durch die damit entstehende Unübersichtlichkeit machst du dir selbst nur das Leben schwer.

                BTW: Ein PHP5.3-Buch, welches PDO ignoriert und mit mysql-Funktionen arbeitet, finde ich nicht dem Stand der Zeit entsprechend. (Gilt nur, wenn dein Code auf einem Buchbeispiel basiert, welches ebenfalls mysql_query benutzt.)

                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


                • #9
                  Bin immer noch am Suchen der Fehler.
                  Also den Fehler "INSERT" habe ich gefunden. Im <form> Tag fehlte im Attribut name das " = ". Nun kann ich Sachen neu eintragen.
                  So, jetzt bleiben nur noch 2 Sachen offen.
                  Update und Delete
                  Wenn ich auf Edit (Update) klicke, kommt eine Fehlermeldung:
                  Code:
                  Warning: Illegal offset type in /opt/lampp/htdocs/test.php on line 47
                  
                  Warning: Illegal offset type in /opt/lampp/htdocs/test.php on line 48
                  Hier der Auszug aus meinem Script:
                  Code:
                  //ändern
                  	else if($_POST["ak"]=="up")
                  	{
                  		$id = $_POST["id"];
                  		$sqlab = "update cds set "
                  			. "interpret = '" . $_POST["interpret"][$id] . "', "   <-- Hier muss der Fehler liegen
                  			. "interpret = '" . $_POST["titel"][$id] . "'"            <-- und auch hier !!!
                  			. " where id = $id";
                  		mysql_query($sqlab);
                  	}

                  Grüße

                  PS: Bin lernwillig und sauge wie ein Schamm
                  PS2: Danke für den Hinweis --> Sry und geändert
                  Zuletzt geändert von lilo78; 18.09.2011, 17:13.

                  Kommentar


                  • #10
                    Kannst du bitte den Beitrag mit dem Quelltext bearbeiten und dort die Zeilen aus der Fehlermeldung mit einem Kommentar versehen? Ich hab nämlich grad keine Lust, selbst nachzuzählen
                    [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

                    Lädt...
                    X