siehe erst Beitrag 2 in diesem Thread
Fehlendes Verständnis beim Verlinkung in einem Form (PHP/MySQL)
Einklappen
X
-
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 error: syntax error, unexpected '}' in /opt/lampp/htdocs/test.php on line 58
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>
Danke und schöne Grüße LILO
-
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
-
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
-
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
-
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
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ändertZuletzt geändert von lilo78; 18.09.2011, 17:13.
Kommentar
-
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
Kommentar