Ik heb een tabel waarin de volgende gegevens van belang zijn:
- volgnummer
- nieuwsbriefnummer
Nu heb ik een lijst met deze gegevens zichtbaar. En wil daar eens systeem bij maken dat je bij elke regel een up/down knopje hebt. Als je het knopje indrukt geeft deze het volgnummer van deze regel door. Bijvoorbeeld omhoog. Daarna moet ik in de tabel kijken naar de dichtstbijzijnde rij met het zelfde nieuwsbriefnummer. Ofwel ik heb volgnummer 5, volgnummer 6 bestaat niet en 7 wel. dan pakt hij nummer 7.
Dit kan natuurlijk door het uiterste nummer op te halen dat in de tabel staat een een loop te maken of elk nummer bestaat, en wanneer hij er een heeft dit nummer te retourneren. Maar kan dit ook handiger door middel van een sql vraagstuk?
$sql = "SELECT * FROM nieuwsbriefdataberichten WHERE nbid='".$_GET['id']."' AND volgordeid > '".$movedown."'";
$resultaat = mysql_query($sql, $conn) or die(mysql_error());
// Wissel de volgnummers om
if($dichtsbijzijnderij != 99999999999999){
$sql = "UPDATE nieuwsbriefdataberichten SET volgordeid='0' WHERE nbid='".$_GET['id']."' AND volgordeid='".$movedown."' ";
mysql_query($sql, $conn) or die(mysql_error());
$sql = "UPDATE nieuwsbriefdataberichten SET volgordeid='".$movedown."' WHERE nbid='".$_GET['id']."' AND volgordeid='".$dichtsbijzijnderij."' ";
mysql_query($sql, $conn) or die(mysql_error());
$sql = "UPDATE nieuwsbriefdataberichten SET volgordeid='".$dichtsbijzijnderij."' WHERE nbid='".$_GET['id']."' AND volgordeid='0' ";
mysql_query($sql, $conn) or die(mysql_error());
}
}
?>
Voor zover ik weet is er geen andere oplossing. Met een index op de kolom volgnummer (die je sowieso waarschijnlijk al hebt) zal dit waarschijnlijk ook nog een van de snellere oplossingen zijn...
@Gijs: dat is niet wat de TS wil. Hij is op zoek naar een manier om het eerstvolgende id op te halen als je een bepaald id weet. Dus niet het hoogste id...