Maximal Wert eines Elements abfragen und als Placeholder ausgeben

  • Hallo Zusammen,


    ich hab mit Joomla Fabrik eine Liste erstellt.

    In dieser Liste gibt es ID's die bis jetzt händisch eingetragen wurden - also nicht in internalid's.


    Wenn ein Benutzer jetzt einen neuen Eintrag zur Liste hinzufügen will, soll im Feld ID automatisch der höchste bestehende Wert + 1 angezeigt werden.


    Beispiel:


    Letzter Eintrag in der Liste


    ID Name

    20 Hund


    Bei ihm soll nachdem er in der Liste auf Hinzufügen gedrückt hat im Feld ID automatisch die 21 stehen.


    Sobald man bei einem Element die "Eval" Funktion einschaltet, wird ja der Default text als PHP ausgewertet.

    Am liebsten wäre es mir, wenn das Element ID als Display angezeigt wird, und da automatisch der Wert 21 steht.


    Aktuell hab ich das drin stehen:

    $test=max (FabrikHelperElement::filterValue(513));
    echo $test;


    Jetzt wird aber der ganze Befehl auch in der Liste angezeigt und nicht mehr die ID's 1-20.

    Die Zahl 513 ist die ID, die Joomla selbst für die Spalte ID in meiner Datenbank vergeben hat.


    Weiß einer, wie man das richtig eingeben muss? Bin langsam am verzweifeln, im Fabrikar.com Forum bin ich nicht fündig geworden.


    Vielen Dank für eure Hilfe.

  • soll im Feld ID automatisch der höchste bestehende Wert + 1 angezeigt werden.

    Und warum? Datenbank-Tabellen speichern im Normalfall die ID-Werte als AUTO_INCREMENT-Wert (automatisch hochzählend) und zwar so, dass sie immer eindeutig ist, also selbst, wenn eine gelöscht wird, wird sie niemals ersetzt.


    Ich verstehe jetzt nicht, wo das Problem ist, wenn der User exakt diese ID sieht (Hauptsache ist ja, dass sie auf ImmerUndEwig eindeutig zu diesem spezifischen Eintrag gehört und nicht zu einem anderen).


    Wenn du die AUTO_INCREMENT-Eigenschaft aus dem Feld entfernst, musst dich halt selber darum kümmern, wie ID hochgezählt wird. Aus Erfahrung weiß ich allerdings, dass das früher oder später zu Chaos führt, wenn man das System dann irgendwann mal relational ausbauen will.

  • Glaub ich muss zum Background kurz was erzählen.


    Früher gab es eine große Excel Datei, bei der verschiedene Dokumente angelegt wurden, denen händisch eine ID zugewiesen wurde. Diese ID wurde auf anderen Tabellen hart reingeschrieben und so ein Verweis erzeugt.

    Diese Exceldatei wurde früher mittels perl Skript in die SQL-Datenbank übertragen.

    Jetzt findet der "Umzug" statt. Anstatt Excel->perl->SQL benutze ich nun die Fabrik List.

    In der SQL Datenbank hab ich so einmal die internal ID Spalte, und meine selbst geschriebene ID Spalte, auf die sich andere beziehen.

    Aktuell gibt es 1400 Einträge, die mit der selbst geschriebenen ID verknüpft sind.


    Deswegen ist es kaum möglich, auf die internal ID alles zu ändern und daher meine Frage, wie ich trotzdem ein automatisches Hochzählen der Werte aus meiner eigenen ID Zeile erhalte.