Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Datenspeicherung in Datenbank Row

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Datenspeicherung in Datenbank Row

    Guten Tag liebe Community!

    Ich versuche gerade so eine art "Chat" zu Coden.
    Und möchte den gesamten Chat verlauf in 1ner Tabellenspalte in der Datenbank speichern!
    Kennt ihr da möglichkeiten wie das aussehen könnte?
    Ich hatte an soetwas ähnliches wie das hier gedacht:

    User1|Text|Datum,User2|Text|Datum,User3|Text|Datum, ...

    Jedoch gäbe es ja beim Spalten der einzelnen Daten probleme wen ein User in seinem Text ein '|' benutzt.

    Kennt ihr ne möglichkeit?


    Liebe Grüße,
    ShadyTM


  • #2
    Und möchte den gesamten Chat verlauf in 1ner Tabellenspalte in der Datenbank speichern!
    Warum das den Mach die deine Datenbank doch vernünftig "normalisiert" und google mal nach AJAX Chat tutoria oder so ähnlich. Gibt es einfache & gute Anleitungen.

    mfg Wolf29
    while (!asleep()) sheep++;

    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

    Kommentar


    • #3
      in 1ner Tabellenspalte
      Hier liegt der Fehler...

      User|Text|Datum
      Das gehört nicht in ein Feld, sondern in drei.. du kannst deine Tabelle genau so aufbauen.
      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

      Kommentar


      • #4
        wolf29:
        Ich finde es einfach besser anstatt immer wieder für jede Antwort eine Spalte zu erstellen..

        (Es wird mehr eine art Posteingang/Nachrichten.. deswegen kein Ajax)


        lstegelitz:
        Ja ob das ganze jetzt so ausschaut:
        Tabelle: User | Text | Datum
        Eintrag: User1| Text | Datum
        Eintrag: User2| Text | Datum
        Eintrag: User3| Text | Datum

        oder
        Tabelle: Text
        Eintrag: User1|Text|Datum,User2|Text|Datum,User3|Text|Datum ,

        Ist ja relativ egal.. bei allen beiden wird es Probleme geben wen der User | benutzt.
        Liebe Grüße

        Kommentar


        • #5
          Ich finde es einfach besser anstatt immer wieder für jede Antwort eine Spalte zu erstellen..
          Spalten einer Tabelle erstellst du nur einmal, dannach setzt du lediglich Datensätze ein. Du solltest dich (so scheint es) mit den Grundlagen von MySQL befassen.

          Kommentar


          • #6
            Und nochmal:
            Wen ein User eine Konversation startet, wird eine neue Spalte erstellt.

            Diese beinhaltet:
            id|Von|Fuer|Text|Datum|VonBeendet

            Wen der "Fuer" also der andere User antwortet, soll die gesamte Konversation die nun zwischen beiden Teilnehmern geschieht in der "Text" Spalte gepseichert werden..

            Kommentar


            • #7
              Wen ein User eine Konversation startet, wird eine neue Spalte erstellt.
              Wo von wem? Du hast extra eine Tabelle, damit du die Daten nicht in eine Spalte quetscht. Bau es vernünftig auf und du wirst später keine Probleme haben mit Datenmanipulation oder -auslesen.

              Wen der "Fuer" also der andere User antwortet, soll die gesamte Konversation die nun zwischen beiden Teilnehmern geschieht in der "Text" Spalte gepseichert werden..
              Ne nicht eine Spalte! Du benötigst mindestens(!) 2 Tabellen (eine User, eine konversation).

              mfg wolf29
              while (!asleep()) sheep++;

              Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

              Kommentar


              • #8
                Ist ja relativ egal..
                Ja, weil deine beide Varianten falsch sind.

                Du machst eine Tabelle mit DREI Feldern:
                user_id - INT
                nachricht - TEXT (oder VARCHAR(255) oä)
                datum - DATETIME

                Für jeden Satz, den ein User schreibt, wird EIN Datensatz (row) in dieser Tabelle erzeugt.

                Zitat von Chris. Beitrag anzeigen
                Du solltest dich (so scheint es) mit den Grundlagen von MySQL befassen.
                Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                Kommentar


                • #9
                  Sorry, die Daten werden nich in ne Spalte sondern in einen neuen Eintrag(Insert) bzw Tabelle gequetscht.

                  Also sollte ich mindestens 2 Tabelle nehmen?
                  Gibts da wirklich keine andere möglichkeit und jetzt kommt nicht mit "Speichern in Files"

                  Liebe Grüße

                  Kommentar


                  • #10
                    Eine Datenbank arbeitet Zeilenorientiert und ist darin ziemlich gut.
                    Warum suchst du nach Alternativen? Benutze die Datenbank so, wie es gedacht ist und alles wird gut...
                    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                    Kommentar


                    • #11
                      Zitat von ShadyTM Beitrag anzeigen
                      Also sollte ich mindestens 2 Tabelle nehmen?
                      Gibts da wirklich keine andere möglichkeit
                      Warum? Was ist an der das Problem?

                      Zitat von ShadyTM Beitrag anzeigen
                      und jetzt kommt nicht mit "Speichern in Files"
                      wtf
                      Zitat von nikosch
                      Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

                      Kommentar


                      • #12
                        Schau Dir z.B. das )nicht mehr ganz aktuelle) Tutorial an:

                        http://tutorialzine.com/2010/10/ajax...hat-php-mysql/

                        mal was für's Verständnis.

                        mfg wolf29
                        while (!asleep()) sheep++;

                        Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

                        Kommentar

                        Lädt...
                        X