Hallo zusammen,
ich habe folgenden Code, um die Reihenfolge meiner Newsartikel zu verändern:
Die Funktion erfüllt auch soweit ihren Zweck.
Doch wenn jetzt z.B. durch Löschen eines Beitrags, eine Lücke in der Reihenfolge der sortID´s entsteht (1,2,5,6) und ich versuche, den Beitrag mit der Nummer 5 nach vorne zu schieben, kriegt er ja nur die sortID 4, und nicht die 2, wie es sinnvoll wäre. Leider finde ich keinen Lösungsansatz, wie ich herausfinden kann, ob eine Lücke vorhanden ist, oder nicht. Ich hoffe ihr könnt mir helfen!
vielen Dank im Vorraus
Duxias
ich habe folgenden Code, um die Reihenfolge meiner Newsartikel zu verändern:
PHP:
function edit_sort($id, $move) {
$id = (int)$id;
$sql = "SELECT
sortID
FROM
content
WHERE
ID = '".$id."'";
$result = $this->_db->query($sql);
$row = $this->_db->fetch_assoc($result);
$old_sortid = $row['sortID'];
if($move == 'up') {
$new_sortid = $old_sortid - 1;
} else {
$new_sortid = $old_sortid + 1;
}
$sql = "UPDATE
content";
if($new_sortid < $old_sortid) {
$sql .= "
SET
sortID = sortID + 1
WHERE
sortID >= '".$this->_db->escape($new_sortid)."'";
} else {
$sql .= "
SET
sortID = sortID - 1
WHERE
sortID > '".$this->_db->escape($old_sortid)."'
AND
sortID <= '".$this->_db->escape($new_sortid)."'";
}
$this->_db->query($sql);
$sql = "UPDATE
content
SET
sortID = '".$new_sortid."'
WHERE
ID = '".$id."'";
$this->_db->query($sql);
return true;
}
Doch wenn jetzt z.B. durch Löschen eines Beitrags, eine Lücke in der Reihenfolge der sortID´s entsteht (1,2,5,6) und ich versuche, den Beitrag mit der Nummer 5 nach vorne zu schieben, kriegt er ja nur die sortID 4, und nicht die 2, wie es sinnvoll wäre. Leider finde ich keinen Lösungsansatz, wie ich herausfinden kann, ob eine Lücke vorhanden ist, oder nicht. Ich hoffe ihr könnt mir helfen!
vielen Dank im Vorraus
Duxias