Datensätze EINER Spalte lesen

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

  • Datensätze EINER Spalte lesen

    Hallo PHP-Resource-Leser,

    ich GOOGLE seit zwei Tagen und komme nicht mehr weiter
    und hoffe, dass mir jemand einen TIP geben kann am besten
    mit dem Zaunpfahl :-) Muss ja keine fertige Lösung sein.

    Ich habe mit 'CONCAT_WS' mehrer datensätz ( daten1 daten2 daten3 )
    in eine Spalte ( nennen wir sie 'spalte' ) geschrieben.

    Nun möchte ich gerne eine maximale Anzahl der daten($i) angeben
    z.B. möchte ich gerne, dass nur 5 Datensätz ( daten1 daten2 daten3 daten4 daten5 )
    reingeschrieben werden und bei einem ' daten6 ' -> ' daten1 ' gelöscht wird.

    Ich habe es ja nicht einmal geschaft die Summe der Daten ( hier 5 ) ausgeben zu lassen,
    denn mit count() und mysql_num_rows() kann ich ja hier nicht arbeiten da alles ja in einer
    Spalte geschrieben ist.

    Gruss Silvia

  • #2
    Wie wäre es denn mit 5 Spalten?

    Kommentar


    • #3
      Re: Datensätze EINER Spalte lesen

      ... schlechter DB-Entwurf - selbst schuld
      Zuletzt geändert von Meillo; 05.11.2005, 12:06.
      [COLOR=royalblue]Ein großes DANKE an alle, die sich auf selbstlose Weise im Forum einbringen.[/COLOR]

      [COLOR=silver]btw: REAL PROGRAMMERs aren't afraid to use GOTOs![/COLOR]

      [color=indigo]Etwas ernster, aber auch nicht weiter tragisch, sieht die Situation bei Software-Patenten aus. Software-Patente sind eine amerikanische Erfindung und stehen auf dem selben Blatt wie genveränderte Babynahrung, die im Supermarkt nicht mehr als solche gekennzeichnet werden soll, um die Hersteller nicht gegenüber denen natürlicher Produkte zu diskriminieren ...[/color]
      (from here)

      Kommentar


      • #4
        @meillo: Die Sachlage ist anders als du glaubst, zumindest soweit ich sie verstanden habe.
        EDIT:
        oh, hast's geändert, dann hat sich's erledigt.
        Zuletzt geändert von onemorenerd; 05.11.2005, 12:10.

        Kommentar


        • #5
          Danke :-) Klar das wäre die einfachste Lösung aber ich möchte
          die DB so klein wie möglich halten und es werden nur ID's drin
          gespeichert also warum nicht alles in einer Spalte - oder liege
          ich da falsch ! Ich sage es mal ganz krass, wenn ich mich dazu
          entschliesse keine Begrenzung rein zu machen kann es mal schnell
          10000 Einträge werden !

          Aber ich möchte ja lernen, daher lasse ich mich gerne belehren,
          ich dachte eher wenn ich verschidenen Spalten mache wäre es
          eine schlechte DB-Struktur

          Gruss Silvia

          Kommentar


          • #6
            Original geschrieben von bikerin111
            Klar das wäre die einfachste Lösung aber ich möchte die DB so klein wie möglich halten und es werden nur ID's drin gespeichert also warum nicht alles in einer Spalte - oder liege ich da falsch !
            Ja, und wie (abgesehen davon, dass du plenkst) - Normalisierung ist das Stichwort, mit dem du dich beschäftigen möchtest.
            Ich sage es mal ganz krass, wenn ich mich dazu entschliesse keine Begrenzung rein zu machen kann es mal schnell 10000 Einträge werden !
            Eine Begrenzung, dass es nur fünf Einträge (=Datensätze) zu einem solchen Objekt geben darf, kannst du (wenn die DB keine Möglichkeit dazu bietet) auch in der Daten einfügenden Logik implementieren.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Also habe ich es so richtig verstanden, dass ich mehrere
              Spalten anlegen soll ?

              Kommentar


              • #8
                dann such dir doch jeweils die letzten 5 DS raus (limit() ) und lösche bei Bedarf (wenn die Anzahl der DS 1000 übersteigt) einfach die ersten 900.

                OffTopic:
                @meillo: Die Sachlage ist anders als du glaubst, zumindest soweit ich sie verstanden habe.
                EDITh, hast's geändert, dann hat sich's erledigt.
                @onemorenerd: right, ich war da erst auf dem "falschen Dampfer" hab's dann allerdings wie ich deinen Post gelesen hatte gemerkt
                [COLOR=royalblue]Ein großes DANKE an alle, die sich auf selbstlose Weise im Forum einbringen.[/COLOR]

                [COLOR=silver]btw: REAL PROGRAMMERs aren't afraid to use GOTOs![/COLOR]

                [color=indigo]Etwas ernster, aber auch nicht weiter tragisch, sieht die Situation bei Software-Patenten aus. Software-Patente sind eine amerikanische Erfindung und stehen auf dem selben Blatt wie genveränderte Babynahrung, die im Supermarkt nicht mehr als solche gekennzeichnet werden soll, um die Hersteller nicht gegenüber denen natürlicher Produkte zu diskriminieren ...[/color]
                (from here)

                Kommentar


                • #9
                  Original geschrieben von bikerin111
                  Also habe ich es so richtig verstanden, dass ich mehrere
                  Spalten anlegen soll ?
                  hast du vielleicht mal konkrete Daten (z.B. Dump), denn ich glaube irgendwie ist mir (und auch den anderen?) die Situation noch nicht ganz klar
                  [COLOR=royalblue]Ein großes DANKE an alle, die sich auf selbstlose Weise im Forum einbringen.[/COLOR]

                  [COLOR=silver]btw: REAL PROGRAMMERs aren't afraid to use GOTOs![/COLOR]

                  [color=indigo]Etwas ernster, aber auch nicht weiter tragisch, sieht die Situation bei Software-Patenten aus. Software-Patente sind eine amerikanische Erfindung und stehen auf dem selben Blatt wie genveränderte Babynahrung, die im Supermarkt nicht mehr als solche gekennzeichnet werden soll, um die Hersteller nicht gegenüber denen natürlicher Produkte zu diskriminieren ...[/color]
                  (from here)

                  Kommentar


                  • #10
                    Na klar hier der Dump:
                    --
                    -- Tabellenstruktur für Tabelle `user`
                    --

                    CREATE TABLE `user` (
                    `id` int(11) NOT NULL default '0',
                    `userid` varchar(255) NOT NULL default '',
                    `besucher` varchar(255) NOT NULL default ''
                    ) TYPE=MyISAM;

                    --
                    -- Daten für Tabelle `user`
                    --

                    INSERT INTO `user`
                    (`id`, `userid`, `besucher`)
                    VALUES
                    (0, 'testuser', 'besucher1 besucher2 besucher3 besucher4 besucher5 ');
                    Super danke für die Hilfe.

                    Kommentar


                    • #11
                      und besucher soll dann beim nächsten Mal so 'besucher2 besucher3 besucher4 besucher5 besucher6' aussehen, right?

                      --

                      ... nunja wie wahsaga schon ansprach: wenn du normalisierst, dann ergeben sich 2 tabellen
                      kann schon verstehen, dass du dir die Datenfülle ersparen willst ... ist halt immer ein Kompromiss


                      zur Lösung: ich würde auf jeden Fall 5 Spalten für die 5 letzten Besucher anlegen, diese müsstest du dann eben per PHP-Script "durchrutschen" lassen wenn ein neuer hinzukommt - wäre aber IMO ganz ordentlich realisierbar, gerade wenn nicht zu viele einzelne Stellen auf die DB zugreifen (= solange es überschaubar bleibt)
                      [COLOR=royalblue]Ein großes DANKE an alle, die sich auf selbstlose Weise im Forum einbringen.[/COLOR]

                      [COLOR=silver]btw: REAL PROGRAMMERs aren't afraid to use GOTOs![/COLOR]

                      [color=indigo]Etwas ernster, aber auch nicht weiter tragisch, sieht die Situation bei Software-Patenten aus. Software-Patente sind eine amerikanische Erfindung und stehen auf dem selben Blatt wie genveränderte Babynahrung, die im Supermarkt nicht mehr als solche gekennzeichnet werden soll, um die Hersteller nicht gegenüber denen natürlicher Produkte zu diskriminieren ...[/color]
                      (from here)

                      Kommentar


                      • #12
                        Original geschrieben von bikerin111
                        Also habe ich es so richtig verstanden, dass ich mehrere Spalten anlegen soll ?
                        Habe ich das jetzt richtig verstanden, dass du dir nicht im geringsten die Mühe gemacht hast, dich zum genannten Stichwort "Normalisierung" mal zu informieren ...?


                        Keine fünf Spalten pro Datensatz, sondern fünf Datensätze der Form
                        UserID | Besucher
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          @Meillo :
                          Es sollen userid's geloggt werden die ein bestimmtes Profil eines anderen Users ansehen. Dieser User soll dann abfragen können welche user sein Profil gesehen haben ( eine Liste mit 5 Einträgen ).

                          @wahsaga :
                          Entschuldige bitte, ich ging davon aus dass Du 'normal' meintest also die DB-Struktur so machst wie es normal wäre ( die kopliziertere Variante ) Entschuldige es war ein missverständnis. Nun habe ich nach dem Begriff mal gegoogelt und hauptsächlich Textseiten gefunden die ich erst mal in Ruhe verarbeiten muss :-)

                          Falls nebenbei noch jemand eine Idee ( @Meillo ) hat wäre ich froh diese mit mir zu teilen :-)

                          Gruss Silvia

                          Kommentar

                          Lädt...
                          X