• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Sortirung und Verschieben

Status
Für weitere Antworten geschlossen.
du solltest das anhand einer ID sortieren die du vorerst auf Auto_Increment hast.

Wenn du jetzt seite 3 nach oben verschieben willst, dann holst du dir erstmal die ID von Seite 3 und die ID von der Seite darüber (hier Seite 2).

Jetzt setzt du die ID von Seite 2 auf -1, die Id von Seite 3 auf Seite 2 und dann die die du vorher auf -1 gesetzt hast auf die ID von vorher Seite 3 ;)

1
Code:
ID      Seite

1       Seite 1
2       Seite 2
3       Seite 3

2
Code:
ID      Seite

-1      Seite 2
1       Seite 1
2       Seite 3

3
Code:
ID      Seite

1       Seite 1
2       Seite 3
3       Seite 2
 
so, versuche es gerade:

PHP:
<?php
        $query = "SELECT * FROM ".$config['tablefront']."sites ORDER BY id ASC";
        $sql = mysql_query($query);
        while($cn=mysql_fetch_object($sql)) {
            $id = $cn->id;
            $name = $cn->name;
            $typ = $cn->typ;
            $query2 = "SELECT * FROM ".$config['tablefront']."sites WHERE id < ".$id." LIMIT 1";
            $query3 = "SELECT * FROM ".$config['tablefront']."sites WHERE id > ".$id." LIMIT 1";
            $sup = mysql_fetch_object(mysql_query($query2))->id;
            $sdown = mysql_fetch_object(mysql_query($query3))->id;
            var_dump($sup);
            var_dump($sdown);
            ?>
            <a href="seiten.php?sid=<?=$id?>" class="left"><span <? if($typ == "u") echo "style=\"margin-left:10px;\""; ?>><?=$name?></span></a>
            <?php if(!empty($sup)) {
                ?>
                <a href="func/sortup.php?id=<?=$id?>&id2=<?=$sup?>" class="up"></a>
                <?php
            }
            if(!empty($sdown)) {
                ?>
                <a href="func/sortdown.php?id=<?=$id?>&id2=<?=$sdown?>" class="down"></a>
                <?php
            }
        }
        ?>
Es funktioniert zwar sogut soweit mit down. ABER bei up gibt er immer nur 1 aus was ja Falsch ist. woran liegt das?

EDIT: Habs jetzt
 
Zuletzt bearbeitet:
Code:
SELECT `name` FROM `navigation` ORDER BY `id`, `name` ASC

so siehts n bissel besser aus... und wenn beide IDs gleich sind... man muss ja nicht immer verschiedenne haben, dann sortiert der die nach dem alphabet...
 
nene, die Ids sind IMMER unterschiedlich weil's ein Primary Key ist und mit Auto_increment gemacht ist :!
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben