| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

17-09-2011, 12:15
|
|
lilo78
Registrierter Benutzer
|
|
Registriert seit: Feb 2005
Beiträge: 36
|
|
Finde einfach den Fehler nicht (parse error)
siehe erst Beitrag 2 in diesem Thread
Geändert von lilo78 (18-09-2011 um 13:53 Uhr)
Grund: Siehe Beitrag 2 in diesem Thread
|

18-09-2011, 13:47
|
|
lilo78
Registrierter Benutzer
|
|
Registriert seit: Feb 2005
Beiträge: 36
|
|
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
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
|

18-09-2011, 13:52
|
 |
ApoY2k
Registrierter Benutzer
|
|
Registriert seit: Nov 2006
Beiträge: 290
|
|
In der Zeile, die PHP dir angibt?
__________________
This is what happens when an unstoppable force meets an immovable object.
|

18-09-2011, 13:55
|
|
lilo78
Registrierter Benutzer
|
|
Registriert seit: Feb 2005
Beiträge: 36
|
|
Ja genau. Also im Body-Teil ...
|

18-09-2011, 14:30
|
 |
ApoY2k
Registrierter Benutzer
|
|
Registriert seit: Nov 2006
Beiträge: 290
|
|
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.
|

18-09-2011, 14:50
|
|
lilo78
Registrierter Benutzer
|
|
Registriert seit: Feb 2005
Beiträge: 36
|
|
Ohhhhhh danke für den Tipp
Diese " ; " sind ja meistens daran schuld.
|

18-09-2011, 15:15
|
|
lilo78
Registrierter Benutzer
|
|
Registriert seit: Feb 2005
Beiträge: 36
|
|
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?
|

18-09-2011, 15:30
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
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
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

18-09-2011, 15:52
|
|
lilo78
Registrierter Benutzer
|
|
Registriert seit: Feb 2005
Beiträge: 36
|
|
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
Geändert von lilo78 (18-09-2011 um 17:13 Uhr)
|

18-09-2011, 17:00
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
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
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|