Yadgar: Problem mit UPDATE

Beitrag lesen

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