Yadgar: PHP 4: Problem mit Wertübergabe per GET

Beitrag lesen

Hi(gh)!

Folgendes Problem (immer noch und, ja, use_strict.php habe ich installiert, es schmeißt mir hier aber keine Fehlermeldung!):

Eine Liste von Datensätzen aus einer MySQL-Datenbank wird in Tabellenform ausgegeben, die ersten beiden Spalten enthalten Links zum Löschen bzw. Bearbeiten jedes Datensatzes. Der Löschen-Link übergibt (beim ersten Datensatz der Tabelle) folgende Werte:

section=2 (Funktion "Löschen oder Bearbeiten", 1 wäre "Eingabe von neuen Datensätzen")
first=0 (Position des ersten Datensatzes in der Liste, es werden immer jeweils 20 Datensätze ausgegeben)
delete=pre (führt zu einer Sicherheitsabfrage)
entry=3 (Indexwert des Datensatzes in der Datenbank)

Dieser Link und die damit verbundene Funktionalität funktionieren einwandfrei. Problematisch ist der "Bearbeiten"-Link; dort sollen (wiederum beim ersten Datensatz der Tabelle) übergeben werden:

section=2 (Funktion "Löschen oder Bearbeiten")
first=0 (Position des ersten Datensatzes in der Liste)
edit=yes (sorgt in der Funktion input() dafür, dass das Formular mit durch den Inhalt des zu bearbeitenden Datensatzes definierten Werten angezeigt wird)
entry=3 (Indexwert des Datensatzes in der Datenbank)

So weit, so gut... nur wird anscheinend nicht nur kein $_GET['entry'] angelegt, es ist nicht einmal möglich, sich den Wert mit

$entry = $_GET['entry'];  
echo "<p>entry = ".$entry."</p>"  

anzeigen zu lassen, ich bekomme nicht einmal ein "entry =" zu sehen!

Hier der Code:

	echo '<h3>Vorhandene Datensätze bearbeiten</h3>';  
	$first = $_GET['first'];  
	dbcall();  
	$query = "DESCRIBE hersteller";  
	$result = mysql_query($query);  
	dberror();  
	echo '<table width="150%">';  
	echo '<tr>';  
	echo '<td colspan="2" class="transparent">';  
	for ($i=0; $i<=4; $i++)  
	{  
	  $row = mysql_fetch_row($result);  
	  echo '<th class="headrow">';  
	  echo '<a href="hersteller.php?section=2&sort='.($i+1).'&first=0">';  
	  echo $row[0];  
	  echo '</a>';  
	  echo '</th>';  
	}  
	echo '</tr>';  
	$j=0;  
	$query_sort=" ORDER BY ";  
	switch ($_GET['sort'])  
	{  
	  case 1:  
	    $query_sort = $query_sort."ID";  
	  break;  
	  case 2:  
	    $query_sort = $query_sort."Firmenname";  
	  break;  
	  case 3:  
	    $query_sort = $query_sort."Land";  
	  break;  
	  case 4:  
	    $query_sort = $query_sort."Status";  
	  break;  
	  case 5:  
	    $query_sort = $query_sort."Link";  
	  break;  
	  default:  
	    $query_sort = "";  
	}  
	$query = "SELECT * FROM hersteller ".$query_sort." LIMIT ".$first.", 20";  
	$result = mysql_query($query);  
	dberror();  
	$sort = $_GET['sort'];  
	$delete = $_GET['delete'];  
	  
	while ($row = mysql_fetch_row($result))  
	{  
	  switch($j%2)  
	  {  
	    case 0:  
	      echo '<tr class="brightrow">';  
	    break;  
	    case 1:  
	      echo '<tr class="darkrow">';  
	    break;  
	  }  
	  echo '<td class="headrow"><span class="b"><a href="hersteller.php?section=2&first='.floor($j/20).'&delete=pre&entry='.$row[0].'">Löschen</a></span></td><td class="headrow"><span class="b"><a href="hersteller.php?section=2&first='.floor($j/20).'&edit=yes&entry='.$row[0].'&sort='.$sort.'&delete='.$delete.'">Bearbeiten</a></span></td><td align="right">'.$row[0]."</td><td>".$row[1]."</td><td>".$row[2]."</td><td>".$row[3]."</td><td>".$row[4]."</td></tr>";  
	  $j++;  
	}  
	echo '</table>';  
	$db = mysql_close();

Der Code für die input()-Funktion im Edit-Modus:

    function input()  
    {  
      if ($_GET['edit']=="yes")  
      {  
        $entry = $_GET['entry'];  
        $sort = $_GET['sort'];  
        echo "<p>entry = ".$entry."</p>"; // nichts wird angezeigt!  
        dbcall();  
        $query = "SELECT * FROM hersteller WHERE ID=".$entry;  
        // echo '<p>'.$query.'</p>';  
        $result = mysql_query($query);  
        dberror();  
        $row = mysql_fetch_row($result);  
        $formtop = '<form method="POST" action="hersteller.php?section=2&first=0&entry="'.$entry.'"&edit=yes&delete=no&sort="'.$sort.'>';  
      }  

...und der Aufruf:

	else if ($_GET['edit']=="yes")  
	{  
	  echo "Hallo!"; // wird angezeigt  
	  echo "<p>entry = ".$entry."</p>"; // wird NICHT angezeigt! Wieso?  
	  input();  
	}

Also, ich bin erstmal ratlos...

Bis bald im Khyberspace!

Yadgar