Haruzept: Menü Reihenfolge ändern

Hallo Zusammen,

ich möchte gerne die Reihenfolge des Menüs ändern. So ähnlich wie bei Joomla.
Nur leider klappt das nicht so ganz. Hier mein Code.

<?php  
include ('../config.php');  
$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die ("Verbindungsversuch fehlgeschlagen");  
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen");  
$sql = "SELECT * FROM `Menu` ORDER BY 'reihenfolge'";  
$verwaltung_query = mysql_query($sql) or die("Anfrage nicht erfolgreich");  
  
$sql2 = "SELECT `Seitenid`, `title` FROM `Seiten`";  
$seiten_query = mysql_query($sql2) or die("Anfrage nicht erfolgreich");  
?>  
  
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">  
<table border="1">  
  <tr>  
    <th>Seitenname</th>  
    <th>Reihenfolge</th>  
  </tr>  
  <?php  
			while ($pro = mysql_fetch_array($verwaltung_query))  
			{  
				while ($seiten = mysql_fetch_array($seiten_query))  
				{  
			?>  
  <tr>  
    <td><?=$seiten['title']?>  
      : </td>  
    <td><input size="2" name="<?=$pro['menuid']?>" value="<?=$pro['reihenfolge']?>"></td>  
  </tr>  
  <?php  
				}  
			}  
			?>  
    </tr>  
  
</table>  
<input type="submit" name="save" value=" Speichern " />  
<input type="reset" name="reset" value=" Abbrechen " />  
</form>  
  
    <?php  
  
if(isset($_POST['reset']))  
{  
        header("Location:admin.php");  
        exit();  
}  
  
if(isset($_POST['save']))  
{  
    $menuid = ($_POST['menuid']);  
	$add = "UPDATE `Menu` SET `reihenfolge` = '$reihenfolge' WHERE `menuid` = '$menuid'";  
}  
  
 if (@mysql_query($add))  
                {  
                echo "<script>alert('Menü wurde erfolgreich geändert.')</script>";  
                }  
  
?>

Ich möchte gerne, dass auf der linken Seite der Name der Seite steht. Darum habe ich eine Verbindung zu der Tabelle "Seiten" hergestellt.
Dann soll ein Input Feld kommen, wo die Reihenfolgen ID aus der Tabelle "Menu" drin stehen soll. Wenn der Benutzer jetzt die ID in dem Iput Feld ändert, soll diese in die Tabelle "Menu" beim Punkt eingtragen werden, wo die "menuid" gleich der "menuid" in der Tabelle "Menu" ist.

Leider weiß ich nicht, wie ich das Script so baue, dass die richite Reihenfolgen ID eingretagen wird.

Kann mir da einer weiter helfen?

  1. Hallo erstmals,

    1. Du liest die Variable $reihenfolge gar nicht aus dem $_POST.
    2. $menuid ist deine $reihenfolge
    3. kann es meiner Meinung nach mehr als ein Feld sein, du fragst aber nur ein Feld ab.. -> kann nicht funktionieren
    4. Hier ein Lösungsansatz

    <?php  
    ...  
      
    $arr = array();  
    ?>  
      
    ...  
      
      <?php  
                            while ($pro = mysql_fetch_array($verwaltung_query))  
                            {  
                                    while ($seiten = mysql_fetch_array($seiten_query))  
                                    {  
    					$arr[] = $pro['menuid'];  
                            ?>  
      <tr>  
        <td><?=$seiten['title']?>  
          : </td>  
        <td><input size="2" name="<?=$pro['menuid']?>" value="<?=$pro['reihenfolge']?>"></td>  
      </tr>  
      <?php  
                                    }  
                            }  
      
     ...  
      
    if(isset($_POST['save']))  
    {  
    	foreach ($arr as $var){  
    		$reihenfolge = ($_POST[$var]);  
                    $add = "UPDATE `Menu` SET `reihenfolge` = '$reihenfolge' WHERE `menuid` = '$var'";  
    	}  
    }  
      
    ...  
    ?>
    
    1. Hallo erstmals,

      1. Du liest die Variable $reihenfolge gar nicht aus dem $_POST.
      2. $menuid ist deine $reihenfolge
      3. kann es meiner Meinung nach mehr als ein Feld sein, du fragst aber nur ein Feld ab.. -> kann nicht funktionieren
      4. Hier ein Lösungsansatz

      <?php

      ...

      $arr = array();
      ?>

      ...

      <?php
                              while ($pro = mysql_fetch_array($verwaltung_query))
                              {
                                      while ($seiten = mysql_fetch_array($seiten_query))
                                      {
      $arr[] = $pro['menuid'];
                              ?>
        <tr>
          <td><?=$seiten['title']?>
            : </td>
          <td><input size="2" name="<?=$pro['menuid']?>" value="<?=$pro['reihenfolge']?>"></td>
        </tr>
        <?php
                                      }
                              }

      ...

      if(isset($_POST['save']))
      {
      foreach ($arr as $var){
      $reihenfolge = ($_POST[$var]);
                      $add = "UPDATE Menu SET reihenfolge = '$reihenfolge' WHERE menuid = '$var'";
      }
      }

      ...
      ?>

        
      Hat funktioniert.  
        
      VIELEN VIELEN DANK!