Hektik
Erfahrenes Mitglied
Hallo liebe Tutorials-Gemeinschaft!
Ich habe eine Funktion geschrieben, die es mir per GET-Übergabe der Datensatz-ID erlauben soll, die Datensätze entsprechend meinen Wünschen zu sortieren. Das klappt auch ganz gut, jedoch kann ich lediglich den ersten Datensatz nicht in seiner Sortierung beeinflussen. Wenn ich den 2ten Datensatz auf den ersten Platz stellen möchte und somit den ersten auf den 2ten Platz verdrängen, dann steht der 2te Datensatz ganz am Ende der Auflistung und der erste bleibt der erste. Ich verstehe das nicht und suche schon den ganzen Vormittag den Fehler
Meine mysql-Tabelle ist folgende:
id | place | rangorder | inhalt
Die entsprechende Funktion: (wird z.b. mit "index.php?id=2" aufgerufen)
Die Ausgabe erfolgt sortiert nach "place".
Ich hoffe, es ist deutlich, was mein Script macht und vielleicht kann mir hier ja einer helfen, ich weiß nämlich nicht mehr weiter
Ich habe eine Funktion geschrieben, die es mir per GET-Übergabe der Datensatz-ID erlauben soll, die Datensätze entsprechend meinen Wünschen zu sortieren. Das klappt auch ganz gut, jedoch kann ich lediglich den ersten Datensatz nicht in seiner Sortierung beeinflussen. Wenn ich den 2ten Datensatz auf den ersten Platz stellen möchte und somit den ersten auf den 2ten Platz verdrängen, dann steht der 2te Datensatz ganz am Ende der Auflistung und der erste bleibt der erste. Ich verstehe das nicht und suche schon den ganzen Vormittag den Fehler
Meine mysql-Tabelle ist folgende:
id | place | rangorder | inhalt
Die entsprechende Funktion: (wird z.b. mit "index.php?id=2" aufgerufen)
PHP:
function reorder($id) {
$tabelle = $_GET['nav'];
$sql = "UPDATE ".$tabelle." SET `rangorder` = `rangorder` - 15 WHERE id = $id";
mysql_query($sql) or die(mysql_error());
$sql = "SELECT * FROM ".$tabelle." ORDER BY `rangorder` ASC";
$result = mysql_query($sql) or die(mysql_error());
$i = 1;
$j = 10;
//anschließend überschreibe ich alle place und rangorder Inhalte mit 1-x beziehungsweise 10-xx:
while( $row = mysql_fetch_assoc($result) )
{
$sql = "UPDATE $tabelle SET `rangorder` = $j, `place` = $i WHERE id = ".$row['id']."";
mysql_query($sql) or die(mysql_error());
$j += 10;
$i++;
}
return true;
}
Die Ausgabe erfolgt sortiert nach "place".
Ich hoffe, es ist deutlich, was mein Script macht und vielleicht kann mir hier ja einer helfen, ich weiß nämlich nicht mehr weiter