Items verplaatsen in db
Het volgende: Ik wil items die ik uit een database haal kunnen verschuiven van plaats.. Elk item heeft een id en word op het id gesorteerd (oplopend). de bovenste begint met het id 1 de 2e met 2 enz.
voorbeeld:
1 Item1
2 Item2
3 Item3
Nu wil ik Item2 omhoogschuiven zodat Item2 bovenaan komt en Item 1 als 2e verschijnt
1 Item2
2 Item1
3 Item 3
Nu heb ik de volgende functie voor het omhoogschuiven bedacht.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
function up($id)
{
$huidig = $_GET['up'];
$boven = huidig - 1;
$sql = array("UPDATE boxes SET id = '1000' WHERE id = '".$boven."'",
"UPDATE boxes SET id = '".$boven."' WHERE id = '".$huidig."'",
"UPDATE boxes SET id = '".$huidig."' WHERE id = '1000'") ;
for ($i=0;$i<2;$i++)
{
mysql_query ( $sql[$i] ) or die ( mysql_error ( ) ) ;
}
}
?>
function up($id)
{
$huidig = $_GET['up'];
$boven = huidig - 1;
$sql = array("UPDATE boxes SET id = '1000' WHERE id = '".$boven."'",
"UPDATE boxes SET id = '".$boven."' WHERE id = '".$huidig."'",
"UPDATE boxes SET id = '".$huidig."' WHERE id = '1000'") ;
for ($i=0;$i<2;$i++)
{
mysql_query ( $sql[$i] ) or die ( mysql_error ( ) ) ;
}
}
?>
maar helaas het werkt niet na behoren.. de ID nummers raken compleet in de war..
Iemand raad?
Gewijzigd op 01/01/1970 01:00:00 door Bert Sinnema
wil je dat item 2 altijd bovenaan staat of wil je kunnen wisselen?
Je moet het bekijken als een tabel waar achter elk item 2 links staan up / down. zodat je de items op en neer kunt verplaatsen
Quote:
Ik wil items die ik uit een database haal kunnen verschuiven van plaats..
@bert:
misschien is het beter om ipv 1000 naar 0 te zetten..
edit:
dat is vanwege autoIncrement.. dan zou de volgende waarschijnlijk 1001 zijn en dan zou de volgende inderdaad een rotzooi zijn als je dan 1001 - 1 doet bij $boven.
edit2:
nog een foutje:
je doet bij $boven = huidig - 1;
moet zijn $boven = $huidig - 1;
Gewijzigd op 01/01/1970 01:00:00 door Terence Hersbach
Ach die kleine foutjes doen de das dan weer om he.
Bedank
Edit
Het blijkt nog niet helemaal te kloppen. Maarja morgen weer een dag..
Gewijzigd op 01/01/1970 01:00:00 door Bert Sinnema