PHP Fehler im Code

n006

Cadet 3rd Year
Registriert
Feb. 2009
Beiträge
63
Hallo liebes Forum,

der Code an sich ist zwar aussagekräftig genug, aber ich fasse kurz zusammen was er tut bzw. tun soll:
Es soll ein Wertepaar ("Titel" & "Interpret") in eine Tabelle namens 'cds' hinzugefügt werden, nach einem "Submit" soll es nun möglich sein ein neues Wertepaar einzufügen, oder die Tabelle auszugeben.

PHP:
<html>
<body>

<?php
if ($button=="OK") {
	include("db.php");
	mysql_query("INSERT INTO cds(titel,interpret)VALUES('$titel','$interpret')");
	mysql_close();
	?>

	Die Daten wurden erfolgreich eingetragen<br>

	<a href="insert.php">neuer Eintrag</a><br>
	<a href="fetcharr.php">zur Übersicht</a>

	<?php
}

else {
	?>
	<form method="post" action="insert.php">
		<input type="text" name="interpret" value="interpret"><br>
		<input type="text" name="titel" value="titel"><br>
		<input type="submit" name="button" value="OK">
	</form>
	<br>
	<?php
}
?>

</body>
</html>

Die Funktion "fetcharr()" gibt alles ordnungsgemäß aus, jedoch kommt die Schleife nie in diesen Fall. Wieso? In der db.php sind die korrekten Daten zum Zugriff auf die DB definiert.
Es wäre echt nett wenn sich meinem Problem jemand annehmen würde.
Vielen Dank im Voraus!

P.S.: Ein Fehler wird nicht ausgegeben.
 
Zuletzt bearbeitet:
fetcharr.php bitte mal zeigen!

was genau soll nicht funktionieren?
was passiert und was nicht?

die insert.php legt daten in die datenbank... funktioniert das?

von welcher schleife sprichst du? Funktion "fetcharr()" steht sicherlich in der fetcharr.php

du solltest auch $_POST['titel'] anstelle von $titel nehmen.
$_POST['interpret'] anstelle von $interpret
$_POST['button'] anstelle von $button

desweiteren solltest du unbedingt deine variablen escapen mysql_escape_string() und mysql-injectionen um eventuellen unbeabsichtigten fehlern bei der nutzung von ' in den formularen zu killen.

PHP:
<html>
<body>

<?php
if ($_POST['button']) {
    include("db.php");
    mysql_query("INSERT INTO cds(titel,interpret)VALUES('".mysql_escape_string($_POST['titel'])."','".mysql_escape_string($_POST['interpret'])."')");
    mysql_close();
    ?>

    Die Daten wurden erfolgreich eingetragen<br>

    <a href="insert.php">neuer Eintrag</a><br>
    <a href="fetcharr.php">zur Übersicht</a>

    <?php
}

else {
    ?>
    <form method="post" action="insert.php">
        <input type="text" name="interpret" value="interpret"><br>
        <input type="text" name="titel" value="titel"><br>
        <input type="submit" name="button" value="OK">
    </form>
    <br>
    <?php
}
?>

</body>
</html>
 
Zuletzt bearbeitet:
Hallo,

Was nicht passiert: Es wird nichts in der Tabelle abgelegt und ich komme nie hier hin:
PHP:
    <a href="insert.php">neuer Eintrag</a><br>
    <a href="fetcharr.php">zur Übersicht</a>

Nachdem man das Formular ausgefüllt hat erscheint dieselbe Seite nocheinmal!

Achja, sorry nicht Schleife ich meine natürlich die if Anweisung, sprich $button=="OK" scheint nie "true" zu sein/werden.

Hier aber dennoch die fetcharr():
PHP:
<html>
<body>

<table>
<?php include ("db.php");
$query = "SELECT * FROM cds";
$result = mysql_query($query);

while ($line = mysql_fetch_array($result)) {
	?>
	<tr>
	<td><?php echo $line[interpret];?></td>
	<td><?php echo $line[titel];?></td>
	<td><a href="update.php?id=<?php echo $line[id];?>">Edit</a></td>
	<td><a href="delete.php?id=<?php echo $line[id];?>">Delete</a></td>
	</tr>
	<?php
}

mysql_free_result($result);
mysql_close();
?>

</table><br>
<a href="insert.php">neuer Eintrag</a>
</body>
</html>

Danke dir schonmal, ich werde jetzt mal die "$_POST"`s bemühen.
 
Schreib doch mal an den Anfang der insert.php:
PHP:
print_r($_POST);
und sende das Formular ab.
Eigentlich sollte da alles angekommen.

Ansonsten würde ich auf einen Fehler in der SQL-Abfrage tippen, der nicht angezeigt wird. Oo
 
Hat geklappt,
vielen vielen Dank dir fi**en32!!!
Ergänzung ()

kann geschlossen werden :-)
 
Zurück
Oben