Menü Reihenfolge ändern
Haruzept
- php
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?
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'";
}
}
...
?>
Hallo erstmals,
- Du liest die Variable $reihenfolge gar nicht aus dem $_POST.
- $menuid ist deine $reihenfolge
- kann es meiner Meinung nach mehr als ein Feld sein, du fragst aber nur ein Feld ab.. -> kann nicht funktionieren
- 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 = "UPDATEMenu
SETreihenfolge
= '$reihenfolge' WHEREmenuid
= '$var'";
}
}...
?>
Hat funktioniert.
VIELEN VIELEN DANK!