login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Inhoud tabel in array

Offline DMM - 26/10/2007 18:12
Avatar van DMMPHP beginner Beste Sima

Graag zou ik de id's in mijn tabel weer in een logische volgorde willen plaatsen (1-2-3-4). Die volgorde was weg na het verwijderen van een record. Dit was niet zo moeilijk om te scripten, maar nu zie ik dat SQL blijkbaar onthoudt welk ID werd verwijderd. Ik dacht eraan om de tabel te legen, de inhoud in een array te stoppen en vervolgens de tabel opnieuw aan te maken. Het is misschien wel omslachtig, maar een andere oplossing heb ik net meteen. Nu, mijn probleem is dat ik de "hypothese" niet kan omzetten naar daadwerkelijke code...

Kan iemand mij helpen?

Bedankt

David Roelandt

4 antwoorden

Gesponsorde links
Offline meagain - 26/10/2007 19:33 (laatste wijziging 26/10/2007 19:34)
Avatar van meagain Nieuw lid Wat beoog je te bereiken door je ids opnieuw te 'normaliseren'?

Volgens mij heeft dit geen enkel nut.

In een relationele db wordt het id uit de ene tabel ook meestal gebruikt als foreign key in een andere tabel, van je pk's (primary keys) en fk's moet je dus afblijven!!
Offline DMM - 26/10/2007 20:54
Avatar van DMM PHP beginner Dat dient om pagina's eenvoudig van plaats te kunnen wisselen in een CMS. Mischien bestaat er een eenvoudige manier, maar die weet ik dan niet.
In dit topic had ik het probleem reeds aangekaart.
Offline meagain - 27/10/2007 10:28
Avatar van meagain Nieuw lid Je moet nooit je id (auto_increment) veld gebruiken om deze volgorde te bepalen, neem daar een ander veld voor.

Wanneer je dan een rij verwijdert, bv pagina 3, is de volgende stap:

update tabel
set mijn_veld = mijn_veld - 1
where mijn_veld > 3;

bij invoegen van een nieuwe pagina, bv een nieuwe pagina 3, voer je eerst volgende query uit:

update tabel
set mijn_veld = mijn_veld + 1
where mijn_veld > 3;

Offline DMM - 27/10/2007 11:33
Avatar van DMM PHP beginner Bedankt voor de hulp
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.189s