Hi(gh)!
Wieso ist $Name bzw. $_POST['Name'] nach dem erneuten Aufruf von enter() leer?
Weil es ein GET-Request war?
Ich habe das Problem in der Zwischenzeit lösen können, hier der Code:
<?php
require("head.php");
head("TESTDATENBANK - Dateneingabe: Testtabelle");
// error_reporting(E_ALL);
// ini_set('display_errors', 1);
?>
<body>
<div>
<h2>TESTDATENBANK: Dateneingabe</h2>
<h3>Datentabelle: hersteller</h3>
<p>
<a href="testtabelle.php?section=1">Neue Datensätze eingeben</a> <a href="testtabelle.php?section=2&first=0">Vorhandene Datensätze bearbeiten</a>
</p>
<?
function enter()
{
$section = $_GET['section'];
if ($_GET['mode'] == 'edit')
{
$query = "SELECT Name FROM Testtabelle WHERE ID=".$_GET['id'];
$result = mysql_query($query);
$row = mysql_fetch_row($result);
}
echo '<form method="POST" action="testtabelle.php?section='.$section.'&mode='.$_GET["mode"].'&id='.$_GET["id"].'&first='.$_GET["first"].'&sort='.$_GET["sort"].'">';
echo ' <table>';
echo ' <tr>';
echo ' <th>';
echo ' Name';
echo ' </th>';
echo ' <td>';
echo ' <input type="text" name="Name" value="'.$row[0].'">';
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>';
}
$section = $_GET['section'];
switch ($section)
{
case 1:
enter();
$Name = $_POST['Name'];
if (!$Name)
{
echo "<p>Bitte geben Sie einen Namen ein!</p>";
}
else
{
dbcall();
dberror();
$query = 'INSERT INTO Testtabelle (Name) VALUES ("'.mysql_real_escape_string($Name).'")';
$result = mysql_query($query);
dberror();
echo "<p>Datensatz wurde in die Datenbank eingetragen!</p>";
}
break;
case 2:
dbcall();
dberror();
$query = "DESCRIBE Testtabelle";
$result = mysql_query($query);
dberror();
echo '<table>';
echo '<tr>';
echo '<td colspan="2" class="transparent">';
for ($i=0; $i<2; $i++)
{
$row = mysql_fetch_row($result);
echo '<th class="headrow"><a href="testtabelle.php?section=2&sort='.($i+1).'&first='.$_GET['first'].'">'.$row[0].'</a></th>';
}
echo '</tr>';
$i = 0;
$query = "SELECT * FROM Testtabelle";
switch ($_GET['sort'])
{
case 1:
$query = $query." ORDER BY ID";
break;
case 2:
$query = $query." ORDER BY Name";
break;
}
$query = $query." LIMIT ".$_GET['first'].", 20";
$result = mysql_query($query);
dberror();
while ($row = mysql_fetch_row($result))
{
switch($i%2)
{
case 0:
echo '<tr class="brightrow">';
break;
case 1:
echo '<tr class="darkrow">';
break;
}
$i++;
echo '<th><a href="testtabelle.php?section=2&mode=prerase&id='.$row[0].'&sort='.$_GET['sort'].'&first='.$_GET['first'].'">Löschen</a></th><th><a href="testtabelle.php?section=2&mode=edit&id='.$row[0].'&sort='.$_GET['sort'].'&first='.$_GET['first'].'">Bearbeiten</a></th>';
echo '<td>'.$row[0].'</td><td>'.$row[1].'</td>';
echo '</tr>';
}
echo '</table>';
if ($_GET['mode'] == "prerase")
echo '<p>Wollen Sie den Datensatz wirklich löschen? <a href="testtabelle.php?section=2&mode=erase&id='.$_GET['id'].'&sort='.$_GET['sort'].'&first='.$_GET['first'].'">ja</a> / <a href="testtabelle.php?section=2">nein</a></p>';
if ($_GET['mode'] == "erase")
{
$query = "DELETE from Testtabelle WHERE ID=".$_GET['id'];
$result = mysql_query($query);
dberror();
echo "<p>Der Datensatz wurde gelöscht! Erneuter Klick auf \"Vorhandene Datensätze bearbeiten\" zeigt aktuellen Stand.</p>";
}
if ($_GET['mode'] == "edit")
{
enter();
$Name = $_POST['Name'];
if (!$Name)
{
echo "<p>Bitte geben Sie einen neuen Namen ein</p>";
}
else
{
$query = "UPDATE Testtabelle SET Name='".mysql_real_escape_string($Name)."' WHERE ID=".$_GET['id'];
$result = mysql_query($query);
dberror();
echo "<p>Der Datensatz wurde geändert!</p>";
}
}
echo '<p class="browse">';
if ($_GET['first'] >= 20)
echo '<a href="testtabelle.php?section=2&first='.($_GET['first']-20).'&sort='.$_GET['sort'].'">Vorherige 20 Datensätze</a>';
if ($_GET['first'] >= 20 && $i % 20 == 0)
echo ' | ';
if ($i % 20 == 0) // Ende der Datensatzliste noch nicht erreicht
echo '<a href="testtabelle.php?section=2&first='.($_GET['first']+20).'&sort='.$_GET['sort'].'">Nächste 20 Datensätze</a>';
echo '</p>';
break;
}
?>
</body>
</html>
Bis bald im Khyberspace!
Yadgar