Neues Modul bekommt ID = 0

  • Hallo in die Runde!


    Innerhalb einer Joomla Anwendung 3.8.6, also aktuell, habe ich ein neues Modul (Widgetkit) erzeugt und aktiviert. Es funktioniert und wird auch angezeigt. Bei dem Versuch noch Ergänzungen bzw. Menüzuweisungsänderungen vorzunehmen, stelle ich fest, dass sich dieses Modul nicht öffnen lässt. Außerdem hat es eine ID = 0, richtig wäre eine ID irgendwo bei 380? Meine Internetrecherche hat mich nicht wirklich weiter gebracht, ich habe den Hinweis gefunden, mal den Cache zu reinigen, was allerdings keine Veränderung gezeigt hat? Die Datenbank wird als intakt gemeldet und ich habe überhaupt keine Ahnung, an welcher Stelle ich denn ansetzen könnte. Es ist mir auch nicht bekannt, dass es nur eine begrenzte Anzahl zu vergebender ID´s gibt?

    Kennt Jemand dieses Problem oder hat Jemand eine Anregung für mich, wie ich nun vorgehen kann? Über eine hilfreiche Nachricht würde ich mich sehr freuen!


    Einen schönen, sonnigen Nachmittag und Gruß


    Veteran

  • Sichere Webseite und Datenbank.


    Prüfe, ob du ein anderes Modul anlegen kannst ohne ID-Verlust, z.B. Joomla-Modul vom Typ "Eigenes Modul".


    Lass dir in phpMyAdmin alle Tabellen auflisten und repariere sie wie im Bild zu sehen. Wenn hier viele Meldungen "The storage engine for the table doesn't support r..." kommen, ist normal.




    Sieh dann per phpMyAdmin in der Datenbanktabelle #__modules nach. Öffne die Tabelle und klicke oben den Reiter "Struktur". Hat die Spalte "id" einen Eintrag "AUTO_INCREMENT"?



    Wenn er fehlt, kannst versuchen, durch Klick auf den Stift-Button diesen wieder anzulegen.




    Teste dann erneut im Backend.


    Abschließend solltest du die Zeile mit id=0 aus der Tabelle löschen. Wenn das im Backend nicht geht, musst du das via phpMyAdmin (diesmal Reiter "Anzeigen") machen.


    Mache in nächster Zeit häufiger Backups als gewohnt und hebe vergangene gut auf, da so ein Eintrag nicht von alleine verschwindet.

  • Vielen Dank für Deine Antwort, zu der ich aber noch Fragen habe:


    Wie komme ich an das SubMenue um einen Button "Reparieren" aufrufen zu können? Mausklick - rechts klappt bei mir nicht?

    Soll wirklich jede der 82 Tabellen repariert werden?

    Zwischenzeitlich habe ich getestet, ob ich ein Modul vom Typ "Eigenes Modul" anlegen kann? Ja, anlegen kann ich das, aber auch dieses bekommt wieder eine ID = 0

    In der Struktur der Tabelle "_modules" ist bei id kein Eintrag "Auto_Increment" und bei dem Versuch das einzuschalten, bekomme ich die Information, dass nur eine Eintrag diese Eigenschaft haben darf?

    Außerdem finde ich einen zweiten Eintrag mit Namen Asset_id der als Kommentar eingetragen hat: FK to the #__assets table.

    In der Spalte Extra gib es auch an anderer Stelle keinen Wert "AUTO_INCREMENT"?


    Ich bedanke mich schon mal für Deine weitere Hilfe

    einen schönen Abend


    Gruß Veteran

  • Wie komme ich an das SubMenue um einen Button "Reparieren" aufrufen zu können? Mausklick - rechts klappt bei mir nicht?

    Soll wirklich jede der 82 Tabellen repariert werden?

    Weiß jetzt nicht, was in meinem Bild diesbzgl. unklar ist. Erst alle markieren (linker, oranger Pfeil), dann im Dropdownfeld, in dem in meinem Bild "Markierte:" steht "Reparieren" wählen.

    Es werden alle in einem Schwung repariert, wenn du zuvor wie im Bild "Alle markieren" anklickst.

    Ich sag mal so: Macht man halt, wenn man eh schon drin ist und was nicht klappt.


    bekomme ich die Information, dass nur eine Eintrag diese Eigenschaft haben darf?

    Das ist richtig, dass nur 1 Eintrag haben darf.


    Mach halt mal Screenshot, ähnlich meinem. Mit allen 18 Zeilen der Strukturübersicht.


    Zusätzlich kannst einen Export der Tabelle mit folgenden Einstellungen machen und deinem nächsten Post anhängen,:








    Restliche Einstellungen sind ziemlich wurst.

    Außerdem finde ich einen zweiten Eintrag mit Namen Asset_id

    Andere Baustelle. Es geht ausschleißlich um Feld/Spalte "id".

  • Hallo Re:Later!

    Nochmals vielen Dank für Deine Hilfe und die Erklärung, was ich genau machen soll. Um nicht vollkommen als Depp dazustehen, erspare ich mir zu erklären, was ich falsch gemacht hatte, um nicht im ersten Anlauf Deine absolut klare Hilfestellung mit dem Bild zu verstehen. Einfach peinlich!

    Zwischenzeitlich habe ich problemlos alle markiert und im SubMenü "Repariere Tabelle" gewählt. Ein Test brachte immer noch den gleichen Fehler ID = 0.

    Hier der Screenshot zur Struktur der Tabelle _modules.



    Dann habe ich noch einmal probiert, ob ich bei ID den Eintrag "AUTO_INCREMENT“ anklicken kann? Dazu wird folgender Fehler gemeldet?



    Als Anhang wollte ich ein File mit der Struktur der Tabelle _modules einfügen. Das hat wegen dem unerlaubten Format nicht geklappt, deshalb hier ein Abbild der Datei:




    Nochmals vielen Dank

    einen schönen Tag und Gruß


    Veteran

  • Schaue mal bitte in die Tabelle bann_users, ob dort die ID mit auto_increment ausgestattet ist. Wenn nicht, hast du ein größeres Problem mit der Datenbank. Hast du die Seite mal umgezogen oder ähnliches? Von selbst verstellt sich das nicht. Es ist einfacher, die Aktion, die für die "Verstellung" sorgte, noch einmal sorgfältig durchzuführen, als nun in zig Tabellen das auto_increment nachzutragen, zudem nicht jede Tabelle bzw Spalte das benötigt.

  • Hallo j!-n,


    vielen Dank für Deinen Hinweis. In der Tabelle bann_users ist der Eintrag AUTO_INCREMENT für ID vorhanden!

    Und, ja, Deine Vermutung ist richtig, die Seite wurde mal zu einem anderen Provider umgezogen. Da darin aber ständig Ergänzungen und Änderungen vorgenommen wurden und noch werden, ist die Wiederholung des Umzugsvorgangs keine Option.


    Gruß Veteran

  • Als Anhang wollte ich ein File mit der Struktur der Tabelle _moduleseinfügen. Das hat wegen dem unerlaubten Format nicht geklappt

    Hättest umbenennen können (ich denke txt-Datei darf man(?). Oder ZIP-Datei daraus machen...)


    Machen wir es gleich rund. Exportiere diesmal ALLE Tabellen der Datenbank (wie oben nur die Struktur). Und diesmal zusätzlich diese Auswahl (ZIP-Dateien darf man anhängen):



    Wenn das nicht klappt, schick mir die Datei als Anhang an die Emailadresse meiner Webseite (s. Signatur).


    Um sicher zu gehen, ob die angemahnten, fehlenden Indices tatsächlich alle fehlen. Gelegentlich werden Sie erst später innerhalb der Exportdateien "erwähnt".

  • das mit dem umbenennen als txt-file hatte ich in Erwägung gezogen, dann aber wieder verworfen, weil das auch Einfluss auf die Dateidarstellung nimmt.

    Nein, da die SQL-Datei einfach nur eine txt-Datei ist. Wenn du die Datei einfach nur umbenennst, ist das OK. Es gibt allerdings Editoren, wie z.B. der Windows-eigene, die beim Speichern als txt, "Müll" machen. Weshalb man immer Notepad++ oder ähnliche für so was verwenden sollte.


    Ich seh mir den Anhang mal an.

  • Bei der Tabelle _modules fehlen alle Indices.

    Beim flüchtigen(!) Durchscrollen scheint es so, dass die anderen Tabellen OK sind.


    Mach ein Backup/Export der Datenbank.


    Klicke dann oben den Tabulator "SQL".


    Füge in das große Feld ein

    Code
    ALTER TABLE `bann_modules`
      ADD PRIMARY KEY (`id`),
      ADD KEY `published` (`published`,`access`),
      ADD KEY `newsfeeds` (`module`,`published`),
      ADD KEY `idx_language` (`language`);

    und klicke OK. ToiToiToi...


    Versuche dann das mit dem AUTO_INCREMENT setzen noch mal.

  • Hallo Re:Later,


    vielen Dank für den SQL Code. Leider führte das zu folgender Fehlermeldung:


    MySQL meldet: Dokumentation

    #1062 - Doppelter Eintrag '0' für Schlüssel 'PRIMARY'


    Im Joomla Backend habe ich versucht, alle Module, die die ID "0" haben, die während des Testens entstanden sind und in den Papierkorb verschoben wurden, zu löschen! Das wird vom System unterbunden und als Fehler "Löschen nicht erlaubt" angezeigt? Nun hatte ich die Idee, die fehlerhaften Module direkt aus der Datenbank zu löschen. Danach habe ich erneut die SQL Anweisungen ausgeführt und siehe da, diesmal ohne Fehlermeldung!! Der nächste Schritt, einen Haken im Feld "A_I" zu setzen, war ebenfalls erfolgreich und damit bekommen nun meine Module wieder eine ID > Null verpasst.


    Vielen Dank für Deine wertvolle, umfangreiche Hilfe, ohne die ich mein Problem sicher nicht hätte lösen können! Wie kann ich mich revanchieren?


    Im Nachgang: Auch wenn es mit dem Thema ganz und gar nichts zu tun hat, ein Freund von mir behauptet immer, es gibt keine Zufälle! Hat er Recht? Ganz in Deiner Nähe, gleiche Straße, Hausnummer 167, bin ich aufgewachsen! Also, wenn das kein Zufall ist ?


    Gruß Veteran