andere manier van id optellen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Martijn

martijn

19/09/2008 13:31:00
Quote Anchor link
Hey,

Normaal heb je voor het aanmaken van ID's en het optellen hiervan auto increment in mysql. Deze telt op als bvb 123 en als je dan 3 verwijdert gaat ie daarna alsnog verder met 4. Dit heb ik nodig maar dan op een andere manier, gezien ik auto increment al gebruik in een tabel. Ik heb namelijk een unique id, die is auto increment. Dan heb ik telkens een id, die is per 4 invoeren hetzelfde en die 4 invoeren hebben dan verschillende talen. Verder staan er dan nog dingen in als title en content. Zo heb ik dus items in verschillende talen maar met dezelfde ID. Deze koppel ik aan een categorie met een koppeltabel, Die koppelt bvb item_id 11 aan cat_id 4. Als ik dan alle items ophaal bij categorie 4 kan ik kijken welke taal er geselecteerd is en haal daarbij de betreffende id op. Dit werkt prima, alleen ik zie een probleem bij de categorieen. Deze worden op dezelfde manier gemaakt als de items. Als ik een categorie door de gebruiker laat verwijderen, en ik maak een nieuwe aan dan zal hij 3 invoeren maken met dezelfde id als de verwijderde categorie, aangezien ik die verkrijg door het kijken naar de hoogste id en die +1 doe.

Best lastig uit te leggen dit misschien word het duidelijker door een voorbeeld:

uniq_id id lang name
1 1 en Paints
2 1 fr Peintures
3 1 de Farben

zo ziet bvb 1 invoer eruit bij mij, ze moeten allemaal dezelfde ID hebben omdat het dezelfde categorie betreft maar met verschillende talen. Hoe zorg ik er nou voor dat als ik id 3 verwijder bvb en daarna een nieuwe toevoeg dat die een uniek id krijgt, en niet meer gemaakt wordt op basis van de vorige hoogste id?

groeten!
 
PHP hulp

PHP hulp

22/12/2024 06:35:23
 
- SanThe -

- SanThe -

19/09/2008 13:42:00
Quote Anchor link
Apart veldje maken => id_teller.
Bij insert id_teller ophalen en gebruiken.
Dan direct id_teller = id_teller + 1 doen.
 
Martijn

martijn

19/09/2008 13:53:00
Quote Anchor link
dat is toch hetzelfde als wat ik nu heb, al zou ik de laatste invoer verwijderen en een nieuwe maken, dan verwijder ik toch ook gelijk id_teller, en telt hij dus doodleuk de vorige op, resulterend in een aantal gelijk aan dat van de zojuist verwijderde.
 
- SanThe -

- SanThe -

19/09/2008 14:00:00
Quote Anchor link
SanThe schreef op 19.09.2008 13:42:
Apart veldje maken => id_teller

Helemaal apart. Desnoods een eigen tabel. Niet in een bestaand record.

Edit:
Tabel 1
uniq_id id lang name
1 1 en Paints
2 1 fr Peintures
3 1 de Farben
Tabel 2
id_teller
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
- -

- -

19/09/2008 14:01:00
Quote Anchor link
Vaag, als ik bij mij m'n laatste verwijder, gaat hij gewoon verder met tellen waar hij was?
 
Martijn

martijn

19/09/2008 14:12:00
Quote Anchor link
omdat je m op auto increment hebt staan.
ik ga het wel ff proberen met een apart id_teller.
Gewijzigd op 01/01/1970 01:00:00 door martijn
 
- wes  -

- wes -

19/09/2008 14:20:00
Quote Anchor link
let op dat je inderdaad het ID veld alleen gebruikt als identificatie van die rij, niet iets anders. vooral niets met berekeningen oid
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.