login  Naam:   Wachtwoord: 
Registreer je!
 Forum

MySQL ID automatisch aanpassen

Offline UpLink - 07/05/2010 08:15
Avatar van UpLink... BEste SiMa's,

De titel is wat omslachtig omdat ik niet goed wist hoe het te omschrijven.

Wat ik dus wil zeggen is het volgende:

In mijn database heb ik dus leden staan gerangschikt op ID.
Maar als ik nu op de site in de ledenlijst ga kijken, klopt die rangschikking niet met de database omdat er accounts tussenuit zijn.

concreet wil dit dus zeggen dat in de database iemand met het ID 25 dus in de ledenlijst op nummer 20 ofzo kan staan. De rangschikking komt niet overeen.

Wat ik dus wil doen is:

Mijn database proberen te updaten zodat alle verwijderde account (en hun gewiste ID's) worden opgevult met bestaande accounts.
Kan dit automatisch of moet dit allemaal handmatig gebeuren?

Ik hoop dat jullie het een beetje begrijpen.

8 antwoorden

Gesponsorde links
Offline lemoinet - 07/05/2010 08:56
Avatar van lemoinet PHP gevorderde je ID is een unieke verwijzing naar je lid en heeft geen enkel nut bij een rangschikking. Het updaten van die ID is normaal not done, omdat je dan alle verwijzingen in je database moet aanpassen.

je kan dit oplossen door een counter te laten meetellen, via php of mysql.

  1. $i = 1;
  2. while ($row = mysql_fetch_assoc($result)) {
  3. echo $i;
  4. echo $row[...];
  5. ...
  6. $i++;
  7. }


  1. SELECT @rownum:=@rownum+1 ‘rank’, l.* FROM leden l, (SELECT @rownum:=0) r ORDER BY ... LIMIT ...;
Offline Martijn2008 - 07/05/2010 12:39 (laatste wijziging 07/05/2010 12:43)
Avatar van Martijn2008 PHP beginner Hey UpLink,

Je kunt door middel van dit scriptje de ID's in je "user" tabel update. Let op, want "user ID's" update in je "user" tabel kan ernstige verstoringen meebrengen voor de rest van de database. Het kan leiden tot inconsistentie. Het is afhankelijk van de inrichting van de database. Maak dus in eerste instantie een backup van de huidige database, voordat je hiermee aan de slag gaat!!!

Veel succes!
Bedankt door: UpLink
Offline Jelmerholland - 07/05/2010 13:58
Avatar van Jelmerholland PHP beginner Als je zoiets handmatie doet (omdat je nog maar 3 gebruiker hebt), zijn er dan ernstige consequenties aan verbonden?

Want op mijn site sta ik, de admin, op ID 10. Niet dat 't uitmaakt, maar nu kan 't nog lijkt mij. Of heb ik dat mis?
Offline UpLink - 07/05/2010 14:36 (laatste wijziging 07/05/2010 14:39)
Avatar van UpLink ...
Jelmerhollan schreef:
Als je zoiets handmatie doet (omdat je nog maar 3 gebruiker hebt), zijn er dan ernstige consequenties aan verbonden?

Want op mijn site sta ik, de admin, op ID 10. Niet dat 't uitmaakt, maar nu kan 't nog lijkt mij. Of heb ik dat mis?


Ik heb een totaal aantal gebruikers van 452, maar in de database heeft gebruiker 452 het ID 531.

Als ik dat allemaal handmatig moet nakijken en veranderen, ben ik wel enkele uren bezig vrees ik.

Martijn2008 schreef:
Hey UpLink,

Je kunt door middel van dit scriptje de ID's in je "user" tabel update. Let op, want "user ID's" update in je "user" tabel kan ernstige verstoringen meebrengen voor de rest van de database. Het kan leiden tot inconsistentie. Het is afhankelijk van de inrichting van de database. Maak dus in eerste instantie een backup van de huidige database, voordat je hiermee aan de slag gaat!!!

Veel succes!


En dat scriptje zorgt ervoor dat alle ID's mooi aansluiten op elkaar?
Offline Jelmerholland - 07/05/2010 14:50
Avatar van Jelmerholland PHP beginner Het was niet als suggestie voor jou Het was een vraag voor mijn belang  
Offline Martijn2008 - 07/05/2010 15:44
Avatar van Martijn2008 PHP beginner Het ligt eraan hoe de tabellen onderling aan elkaar zijn gekoppeld, bijvoorbeeld d.m.v. foreign keys. Pas je iets in de ene tabel aan, dan wordt het direct ook gewijzigd in gekoppelde tabellen. Ook ligt het eraan hoe de foreign keys geconfigureerd, bijvoorbeeld; ON UPDATE CASCADE ON UPDATE DELETE.

Zou je nu bijvoorbeeld handmatig een wijziging maken in de "user" tabel, dan zou het bijvoorbeeld zo kunnen zijn dat de wijziging wel wordt doorgevoerd in de "user" tabel, maar niet in de onderliggende/gekoppelde tabellen. Dit zou funest kunnen zijn voor de database.


Offline UpLink - 07/05/2010 16:17
Avatar van UpLink ... Nu zit ik met een ander probleem.

Ik had dus over het hoofd gezien dat ik in de forum tabel ook met de ID's werk.

Zou het lukken om met datzelfde script aan de hand van de usernames het ID in ALLE tabellen te veranderen of word dit te omslachtig?

Ik ben niet zo'n krak in die dingen dus ik moet ergens hulp vandaan halen.

Als dit niet zou kunnen, dan heb ik natuurlijk nog altijd de back-up van daarstraks.

Maar ik hoop dat dit wel kan, want ondertussen zijn er al leden die aanpassingen hebben gedaan op hun account.
Offline lemoinet - 07/05/2010 16:27
Avatar van lemoinet PHP gevorderde ik snap nog altijd het nut hiervan niet. je user id is een unieke verwijzing in je database naar je user.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.214s