Seite 1 von 1
Rollen zuordnen (Spielwiese)
Verfasst: 16. Jan 2007, 11:32
von fly2me
Bin als Vorstand angemeldet und auf meinem eigenen Profil. Dort möchte ich mir selbst eine weitere Rolle zuordnen und erhalte:
Folgender Fehler trat beim Zugriff auf die Datenbank auf:
Errorcode: 1062
Duplicate entry '102-381' for key 2
Verfasst: 16. Jan 2007, 12:38
von fasse
Hab die Ursache des Fehlers gefunden.
Du hast der Rolle Newsletter alle anderen Rollen als Abhängig zugeordnet.
Ordnet man nun einem Mitglied irgendeine Rolle zu, so wird in roles_save.php bei den Abhängigkeiten nicht geprüft, ob das Mitglied bereits dieser Rolle zugeordnet wird. Es wird einfach zugeordnet und dann fällt die DB auf die Nase, da dann ein Duplicate-Key existiert.
Verfasst: 16. Jan 2007, 13:18
von milkaman
Hi,
eigentlich sollten keine doppelten Eintraege gemacht werden, da ich ein INSERT IGNORE mache...
Gruss
Roland
Verfasst: 18. Jan 2007, 14:34
von fasse
Hi Roland,
der hier gemeldete Fehler lag daran, dass ich die Zeile mit "ON DUPLICATE KEY" entfernt hatte. Diese hab ich nun wieder hinzugefügt, allerdings kommt jetzt die Online-DB nicht mit der Syntax klar.
Dies ist auch die Ursache für
Joeschs Fehler bei der Registrierung.
Scheinbar kennt MySql4 die Syntax "ON DUPLICATE KEY" nicht.
Schaust du noch mal danach ?
Gruß
Fasse
Verfasst: 18. Jan 2007, 20:49
von milkaman
Mache ich gleich
Verfasst: 18. Jan 2007, 23:10
von milkaman
ON DUPLICATE KEY wird erst ab version 4.1 unterstützt. Ich habe das jetzt mal in ein Insert Ignore umgewandelt. Wenn die Rollenzuordnung schon existiert wird halt nichts gemacht.
Kann leider nur den Gutfall hier testen, da ich keine alte DB habe. Aber das koennen wir ja später nachholen.
Verfasst: 19. Jan 2007, 11:29
von fasse
Das Zuordnen klappt jetzt.
Allerdings bin ich nun auf ein neues Problem gestoßen.
Ich habe eingetragen, dass jeder, der die Rolle FHB 22 zugeordnet bekommt, auch automatisch in den Vorstand kommt. Ordnet man nun dem User Hans Dampf die Rolle FHB 22 zu, so wird er nicht automatisch Mitglied im Vorstand.
Dies liegt daran, dass er schon mal im Vorstand war, aber die Mitgliedschaft beendet wurde. Aber eigentlich wäre es jetzt schon richtig, wenn er wieder dem Vorstand zugeordnet würde.
Verfasst: 19. Jan 2007, 13:51
von milkaman
Mist, das habe ich vergessen. Dann muss ich das setzen der abhaengigen Rollen doch noch etwas anders machen.
Dann komme ich um Datenbankabfragen wohl nicht herum, oder muss ein REPLACE statt insert machen. Werde ich mir heute Abend mal anschauen.
Verfasst: 19. Jan 2007, 13:56
von fasse
Hi Roland,
ich hatte auch schon mal kurz reingeschaut. Du müsstest dann auch noch mal bei der Erstellung des Rollenarrays schauen. Dort werden nur Rollen reingeschrieben, wenn vorher ein Insert in die Member-Tabelle gemacht wurde. Wird aber auch die Rolle FHB 22 nur per Update auf aktiv gesetzt, so wird die Rolle Vorstand nicht in das Array geschrieben.
Gruß
Fasse
Verfasst: 22. Jan 2007, 10:37
von fasse
Hi Roland,
mit deiner aktuellen Korrektur funktioniert es jetzt einwandfrei.
Gruß
Fasse