siehe erst Beitrag 2 in diesem Thread
							
						
					Fehlendes Verständnis beim Verlinkung in einem Form (PHP/MySQL)
				
					Collapse
				
			
		
	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:
 Zum Verständnis hier mal der komplette Code:PHP Code:Parse error: syntax error, unexpected '}' in /opt/lampp/htdocs/test.php on line 58
 
 Es soll eine "}" Klammer zuviel sein, aber WO?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.
 Comment
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 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?
 Comment
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 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]
 Comment
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 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:
 Hier der Auszug aus meinem Script: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ändertLast edited by lilo78; 18-09-2011, 17:13.
 Comment
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 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? [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]
 Comment
 
          
 
							
						 Moderatorin
 Moderatorin
Comment