Toon posts:

[PHP] PHPMyAdmin vraag m.b.t. database

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Kheb een kleine vraag over PHPMyAdmin.
Ik weet echter niet of het mogelijk is wat ik wil hoor.

Ik heb dus een newsscript gemaakt + comments.
Elk comment heeft een ID en dat wordt dus ook aan me database toegevoegd per ID. Stel ik heb ID's 1 t/m 20, alleen ik wil ID nummer 20 deleten.
Dan geeft ie het eerstvolgende bericht echter ID 21, terwijl 20 dus vrij is omdat ie gedelete is.

Is er een functie binnen PHPMyAdmin ofzo waarmee je dat kan doen soms, of ligt dat ergens anders aan binnen me script?

Nu heb ik zeg maar gaten er in, dus ID's 1 t/m 15 ofzo, dan gaat ie weer door bij 18 (omdat ik dus 16 en 17 gedelete heb bijvoorbeeld)..

Bedankt voor de replies! ;)

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
Id is autonummering?
Dan kun je er niets aandoen. Het DBMS bepaalt welk nummer het volgende record krijgt... en als je een record deleted, dan krijg je die gaten.

https://fgheysels.github.io/


Verwijderd

Topicstarter
Ok, dan weet ik dat. Dank! :)

Verwijderd

je kan natuurlijk auto_increment uit zetten en voordat je iets in de database zet de hoogste ID ophalen en die 1 ophogen een beetje omslachtig opzich...

Verwijderd

lijkt me niet verstandig om je id's te gaan wijzigen, omdat dan alle links binnen andere, externe pagina's dan niet meer kloppen.
Als je toch per se wilt nummeren 'zonder gaten' kun je misschien zelf zoiets schrijven...

  • blender
  • Registratie: Juni 2001
  • Niet online
Is ook logisch hoor, eenmaal gebruikte id's zou je ook als ze gedelete zijn niet meer moeten gebruiken.

Verwijderd

Topicstarter
Idd, ik had ID op auto_increment gezet..

Wat vinden jullie nou bijvoorbeeld van dat soort gaten, ben ik aan het mierenneuken of is het idd storend?

Verwijderd

Verwijderd schreef op 22 augustus 2002 @ 23:18:
Idd, ik had ID op auto_increment gezet..

Wat vinden jullie nou bijvoorbeeld van dat soort gaten, ben ik aan het mierenneuken of is het idd storend?
je bent aan het mierenneuken :P
Maar ik vind dit echt niet storend hoor. Is zelfs logisch. Anders zou je bv een nummering kunnen krijgen als:

1 - 2 - 3 en dan delete je 1 en dan zou het volgende nummer 1 zijn, is hardstikke onlogisch...

Verwijderd

Topicstarter
Hmm idd, kheb ook geen zin om ID's enzo te gaan veranderen, is ook niet verstandig, ok bedankt!

  • Just_a_Gamer
  • Registratie: November 2001
  • Laatst online: 31-08 07:04
Verwijderd schreef op 22 augustus 2002 @ 23:16:
je kan natuurlijk auto_increment uit zetten en voordat je iets in de database zet de hoogste ID ophalen en die 1 ophogen een beetje omslachtig opzich...
Tja wat je zegt is psies wat auto_increment doet. Je hebt bv ID 1,2,3,4,5 . Je delete 3. Je haalt de hoogste ID op 5 en 1 ophogen. Dan heb je psies auto_increment of zie ik het verkeerd :?

  • Kresh
  • Registratie: Mei 2000
  • Laatst online: 02-03 09:27
Niet helemaal
Als je ID 1, 2, 3, 4, 5 hebt en je delete 5. Dan gaat hij toch verder bij 6.
Hoewel hoogste ID + 1 5 op zou leveren

Verwijderd

waarom zou je het ook willen? ID's zijn er enkel om een bepaalde record een uniek getal te geven waarmee je bepaalde query mee kunt uitvoeren

Verwijderd

Verwijderd schreef op 23 augustus 2002 @ 10:59:
waarom zou je het ook willen? ID's zijn er enkel om een bepaalde record een uniek getal te geven waarmee je bepaalde query mee kunt uitvoeren
Inderdaad.
En daarnaast is het ook nog zo dat er fouten kunnen ontstaan, bijvoorbeeld als een andere site de link naar 1 van jouw artikelen wilt plaatsen. Het is beter dat dat je dan 'sorrie, dit artikel bestaat niet meer' krijgt, dan dat je een verkeerde nieuwsbericht oproept.

Verwijderd

Precies.. verander de tekst naar 'fout, bestaat niet meer' ofzoiets... beter dan deleten. Ook een 'vorige/volgende'-functie werkt niet meer correct als je 'n ID gedelete hebt.

  • Just_a_Gamer
  • Registratie: November 2001
  • Laatst online: 31-08 07:04
wat je wel zou kunnen doen is een extra tabel maken. Wanneer je een ID verwijdert sla die ID in die extra tabel. Wanneer je een nieuwe ID aanmaakt, kijk je of er een ID vrij is in die extra tabel. Zo ja haal daar een ID vandaan, zo nee haal de hoogste ID op + 1;

Maar ja waarom zo omslachtig doen om die holes eruit te houden. Het heeft vrij weinig effect op je database volgens mij.

Verwijderd

Hmm ... ja je hebt gelijk dat als je ertussen wat weghaald dan heb je gaten, alleen aan het eind weghalen levert dat probleem niet op.... Ik vind auto_increment zelf opzich fijn... Probeer het zelf zoveel mogelijk te gebruiken alleen als het niet anders kan doe ik het niet... Zoals eerder gezegd zijn die ID's toch alleen maar voor een uniek getal te onthouden. De gebruiker wordt er verder niet mee geconfronteerd... Nou ja normaal gesproken dan. Je zou natuurlijk ook een script kunnen schrijven die alle getallen afgaat tot aan het einde en zo gauw die een lege tegenkomt daarin doen, maar je maakt het jezelf er alleen lastig mee...
Pagina: 1