Hi(gh)!
Um mein ursprüngliches Eingabeseiten-Problem vielleicht irgendwann einmal lösen zu können, fange ich noch einmal ganz klein an, mit einer Test-Datenbank, die nur aus einer Tabelle mit zwei Feldern, ID (Primärschlüssel, auto_increment) und Name (varchar(40)) besteht.
Hier der PHP-Code für die Eingabeseite:
<?php
require("head.php"); // enthält u. a. die Funktionen für Datenbankaufruf und Fehlerbehandlung
head("TESTDATENBANK - Dateneingabe: Testtabelle");
?>
<body>
<div>
<h2>TESTDATENBANK: Dateneingabe</h2>
<h3>Datentabelle: hersteller</h3>
<p>
<a href="testtabelle.php?input=yes&edit=no">Neue Datensätze eingeben</a> <a href="testtabelle.php?input=no&edit=yes">Vorhandene Datensätze bearbeiten</a>
</p>
<?
function enter()
{
$input = $_GET['input'];
$edit = $_GET['edit'];
echo '<form method="POST" action="testtabelle.php?input='.$input.'&edit='.$edit.'">';
echo ' <table>';
echo ' <tr>';
echo ' <th>';
echo ' Name';
echo ' </th>';
echo ' <td>';
echo ' <input type="text" name="Name">';
echo ' </td>';
echo ' </tr>';
echo ' <tr>';
echo ' <td colspan="2">';
echo ' <input type="submit" value="Daten absenden">';
echo ' </td>';
echo ' </td>';
echo ' </table>';
echo '</form>';
}
$input = $_GET['input'];
$edit = $_GET['edit'];
if ($input == "yes")
{
enter();
$Name = $_POST['Name'];
echo "<p>Name = ".$Name."</p>";
if (!$Name)
{
echo "<p>Bitte geben Sie einen Namen ein!</p>";
}
else
{
$query = "INSERT INTO Testtabelle (Name) VALUES ('".mysql_real_escape_string($Name)."')";
dbcall();
dberror();
$result = mysql_query($query);
dberror();
echo "<p>Datensatz wurde in die Datenbank eingetragen!</p>";
}
}
?>
</body>
</html>
Wenn ich jetzt aber mit PHPMyAdmin in meiner Testdatenbank nachsehe, stelle ich fest, dass zwar pro Programmdurchlauf (bis jetzt 2 Durchläufe) Datensätze mit automatisch erhöhten ID-Werten angelegt wurde, das "Name"-Feld aber leer blieb. Wieso?
Bis bald im Khyberspace!
Yadgar