Sortierung nach DB-Update

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sortierung nach DB-Update

    pfff, nicht leicht aber ich versuchs mal:

    Ich habe eine db mit vier tabellen: _art, _best, _gat und _user. (letztere ist in diesem fall irrelevant)

    in _gat habe ich eine fortlaufende nummerierung: gid (int11) + passendes (text) feld

    [COLOR=blue]1[/COLOR] - blah
    [COLOR=red]2[/COLOR] - blub
    [COLOR=green]3[/COLOR] - blubber
    [COLOR=teal]4[/COLOR] - blablub

    in _art habe ich eine fortlaufende nummerierung: aid (int11) + passendes art(text) feld + zuordnung gaid (int11)

    aid - art - gaid
    457 - texta - [COLOR=blue]1[/COLOR]
    458 - textb - [COLOR=blue]1[/COLOR]
    459 - textc - [COLOR=red]2[/COLOR]
    460 - textd - [COLOR=green]3[/COLOR]
    461 - texte - [COLOR=green]3[/COLOR]
    462 - textf - [COLOR=green]3[/COLOR]
    463 - textg - [COLOR=teal]4[/COLOR]

    in der _best steht in etwa folgendes
    müller - 457
    müller - 460
    müller - 462
    müller - 463
    meier - 458
    meier - 459
    meier - 461
    schmitz - 457
    schmitz - 461

    Im Moment wird die ausgabe einfach nach aid sortiert, da gaid bereits in richtiger reihenfolge steht.

    also in etwa so: (wahlweise sortierung nach gat/art oder User)

    gat - art - user
    --------------------
    blah - texta - müller
    blah - texta - schmitz
    blah - textb - meier
    blub - textc - meier
    blubber- textd - müller
    blubber- texte - meier
    blubber- texte - schmitz
    blubber- textf - müller
    blablub- textg - müller

    Hoffe soweit ist alles klar...

    Nun komm ich zum Problem:
    In der _art sind änderungen notwendige. einge datensätze fallen heraus andere kommen hinzu. Also ändert sich die Nummerierung. Damit nun nicht alle User (oder schlimmer noch ICH ) sämtliche Daten in der _best überprüfen/anpassen müssen, hab ich mir gedacht ich könnte gid von (int11) in beispielsweise (varchar) ändern und die bestehende nummerierung lediglich 'ergänzen'. Also z.B.:

    457 - texta - [COLOR=blue]1[/COLOR]
    457a - textx - [COLOR=blue]1[/COLOR]
    457b - texty - [COLOR=blue]1[/COLOR]
    459 - textc - [COLOR=red]2[/COLOR]
    459a - textz - [COLOR=red]2[/COLOR]
    461 - texte - [COLOR=green]3[/COLOR]
    462 - textf - [COLOR=green]3[/COLOR]
    463 - textg - [COLOR=teal]4[/COLOR]

    soweit so gut, allerdings bekomm ich dann ein problem mir der sortierung:

    4, 40, 41, ..., 49, 400, 401, 402, ..., 457, 457a, 457b etc pp.

    Und SO wollt ichs eigentlich nicht haben ...
    Kann ich das mit dem anhängen von a,b,c,... bewerkstelligen oder seht ihr noch eine andere möglichkeit.

    sollte noch was unklar sein....

    Danke schonmal

    Gruss
    Rat

  • #2
    Moment wird die ausgabe einfach nach aid sortiert, da gaid bereits in richtiger reihenfolge steht.
    Wenn ich das richtig habe, sollen die gleichen gaid´s immer beieinander bleiben, gell? Wenn dem so ist, sortiere doch einfach später so:
    PHP-Code:
    ORDER BY gaidaid 
    Der Kram mit 457a und so weiter bringt Dich später nur in Teufelskueche.
    (-:
    Bookmarks:·Bilder·Jobs·Recht·
    kostenloser Webkataloge-Assistent

    Kommentar


    • #3
      im prinzip keine schlechte idee, nur leider hab ich vergessen zu erwähnen das die zu aid zugehörigen texte auch schon alphabetisch sortiert sind (entsprechend der nummerierung). wenn ich nun
      PHP-Code:
      ORDER BY gaidaid 
      nehme muss ich die neuen einträge in _art ja hinten anhängen und werden in der sortierung auch hinten angestellt.


      einzige möglichkeit die ich im moment noch sehe ist nach
      PHP-Code:
      ORDER BY gaidart 
      zu sortieren - hmm sollte das die lösung sein .... ???

      Kommentar


      • #4
        mist geht ja auch nicht - aid und art stehen ja nicht in der selben tabelle ..... merde

        gibt's denn nicht doch die möglichkeit die vorhandene nummerierung zu 'ergänzen? mit buchstaben oder .1 .2 .3 etc.

        Kommentar


        • #5
          gehts evtl. wenn ich INT auf Decimal ändere? dan müsste das doch mit 456.1, 456.2, 457, 458.1... gehen, oder?


          EDIT:
          OK, mit decimal gehts musste zwar noch ein paar kleinigkeiten anpassen, aber imgroben und ganzen passts...
          allerdings hab ich jetzt noch ein Prob mit JS und dem dezimalpunkt (vermute ich)

          Zuletzt geändert von Rat; 01.03.2004, 12:10.

          Kommentar

          Lädt...
          X