Ankündigung

Einklappen
Keine Ankündigung bisher.

Wert abziehen

Einklappen

Neue Werbung 2019

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

  • Wert abziehen

    Hallo,

    ich habe eine Tabelle

    schluessel | produktname.............| zahl
    a1.............| erstes auto.............. |. 3
    a2.............| zweites auto.............|..3
    a3.............| drittes auto...............|..3

    wie kann ich aus dieser Tabelle folgende ausgaben machen? Die Werte sollten absteigend mit Produktnamen und mit Tilde als Delimiter absteigend gespeichert werden.

    schluessel | produktname.............| zahl
    a1.............| erstes auto~3............|..3
    a2.............| zweites auto~2..........|..3
    a3.............| drittes auto~1............|..3


    Ich weiß das ich zwei Werte mit CONCAT(...) speichern kann.

    PHP-Code:
    CONCAT(produktname'~'zahl
    Aber ich kriege das nicht hin. Wie kann ich es machen???

  • #2
    Ich versteh die Logik dahinter nicht. Kannst du die erklären? Es wäre auch hilfreicher, wenn du korrekte deutsche Sätze schreiben würdest, sodass man nicht herumraten muss, was eigentlich gemeint ist.

    Kommentar


    • #3
      Ich möchte die Werte aus Spalte "zahl" in Spalte "Produktname" übernehmen. Aber diese Werte sollten absteigend gespeichert werden.

      Kommentar


      • #4
        Zitat von User0101 Beitrag anzeigen
        Ich möchte die Werte aus Spalte "zahl" in Spalte "Produktname" übernehmen. Aber diese Werte sollten absteigend gespeichert werden.
        Absteigend nach was?

        Angenommen die Daten sehen so aus, wie soll das Ergebnis aussehen:

        a2.............| erstes auto.............. |. 2
        a1.............| zweites auto.............|..3
        a3.............| drittes auto...............|..1

        a2.............| erstes auto~?............|..2
        a1.............| zweites auto~?..........|..3
        a3.............| drittes auto~?............|..1

        Kommentar


        • #5
          Erste Zeile in Spalte "Produktname" soll den höchsten Wert aus Spalte "zahl" enhalten. Und dieser Wert soll mit Wert aus Spalte "Produktname" getrennt mit einer Tilde z.B "irgendwas~3" gespeichert werden.

          schluessel | produktname.............| zahl
          a1.............| erstes auto~3............|..3
          a2.............| zweites auto~2..........|..3
          a3.............| drittes auto~1............|..3

          Kommentar


          • #6
            Aber nach welcher Reihenfolge? Daten in einer Datenbank haben ja keine Reihenfolge, diese gibst du erst mit der Abfrage vor. Also wie sieht die Abfrage aus?

            Und warum willst du das überhaupt so abspeichern? Dabei handelt es sich doch um eine redundante Information, die jederzeit neu ermittelt werden kann.

            Was soll eigentlich passieren, wenn sich die Daten ändern, also z.B. ein Datensatz hinzukommt oder entfernt wird? Sollen dann jedesmal alle Werte in der Tabelle neu aktualisiert werden, oder wie hast du dir das vorgestellt?

            Kommentar


            • #7
              Meine echte Schlüssel sind sogar alle gleich (pro Gruppe) nicht wie in meinem Beispiel. a1,a2,a3. Ich muss so speichern, Produktname ist der Schlüssel sonst werden alle meine Daten überschrieben. Ich kann es nicht ändern.

              Meine echte Tabelle


              schluessel | produktname..............| zahl
              a1.............| erstes auto................|..3
              a1.............| zweites auto..............|..3
              a1.............| drittes auto................|..3
              a2.............| erstes auto................|..2
              a2.............| zweites auto..............|..2
              a3.............| drittes auto................|..4
              a3.............| drittes auto................|..4
              a3.............| drittes auto................|..4
              a3.............| drittes auto................|..4

              Mein Wunsch

              schluessel | produktname.................| zahl
              a1.............| erstes auto~3................|..3
              a1.............| zweites auto~2..............|..3
              a1.............| drittes auto~1................|..3
              a2.............| erstes auto~2................|..2
              a2.............| zweites auto~1..............|..2
              a3.............| drittes auto~4................|..4
              a3.............| drittes auto~3................|..4
              a3.............| drittes auto~2................|..4
              a3.............| drittes auto~1................|..4

              Wie ich verstehe allein mit SQL geht das nicht. Ich brauche PHP. Vielleicht mit PHP als Array abrufen und dann abspeichern? Ich habe jetzt keine anderen Ideen. Bis jetzt habe ich versucht allein nur mit SQL zu machen.

              Kommentar


              • #8
                Ich warte immer noch auf eine verständliche Erklärung, was du eigentlich machen willst, bzw. welches Problem du lösen willst. Ich sehe nur wirre Beispieldaten mit einem nicht nachvollziehbarem Beispielergebnis.

                Kommentar


                • #9
                  Wenn du es nur so ausgeben willst wie du es dargestellt hast,
                  dann:
                  Code:
                  SELECT `id`, `schluessel`, `produktname`, `zahl`
                  FROM `user101`
                  ORDER BY `schluessel` , `id` DESC
                  id ist der Schlüssel und nicht produktname, wie du fälchlicherweise angenommen hast. Wenn deine Tabelle keine Spalte id hat, füge sie hinzu, als primärschluessel.
                  siehe http://sqlfiddle.com/#!9/1499e9/1

                  Ich muss so speichern,
                  Warum?
                  Eine Erklärung warum du das im Nachhinein ändern musst und nicht schon bei Eingabe der Daten wäre wünschenswert.

                  Den Satz verstehe ich auch nicht
                  Produktname ist der Schlüssel sonst werden alle meine Daten überschrieben

                  Kommentar

                  Lädt...
                  X