Ankündigung

Einklappen
Keine Ankündigung bisher.

Kommas aus String

Einklappen

Neue Werbung 2019

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

  • Kommas aus String

    Hallo zusammen,

    wie bekomme ich denn aus diesem String mit regulären Ausdrücken die kommas heraus. Ich bruache aber nur die jenigen, die nicht in der DATE_FORMAT Funktion stehen bzw. generell in keiner Funktion. Einach so, dass nur die Spalten im Prinzip gezählt werden, die ausgegeben werden.

    Ich brauch wiederrum aber dnur die Kommas, die innerhalb der SELECT FROM Anweisung stehen, falls nach dem From noch Kommas kommen, sollen die nicht mitgezählt werden.

    PHP-Code:

    $sql 

    "SELECT id,file_name,folder_name,title,DATE_FORMAT(table.insert_date, '%d.%m.%Y') AS insert_formatted 
                FROM table"

    ich hoffe dass das jemand kann.

    mfg anno

  • #2
    Und nun nochmal in deutsch bitte. Du möchtest mit regExpr die Kommas, oder doch eher die Feldbezeichner aus der gegebenen Query auslesen? Die Aliase auch?
    Entferne erstmal die Funktionen also:
    Zeichenkette+keine Lücke+Klammer+alle Zeichen bis zur Klammer+Klammer,
    dann bist du schon fast am Ziel,
    dann alles zwischen SELECT und FROM und schließlich explode (',')...

    Kommentar


    • #3
      Hallo anno,

      ich stell jetzt einfach mal die Frage, WARUM du das machen möchtest. Wenn man solche Handstände versucht, ist das immer ein Anzeichen von "error by design". Frag dich bitte mal, warum das sein muss und ob es nicht auch andere, sauberere Lösungsansätze gibt. Wenn deiner Meinung nach nicht, erklär mir warum, dann helfe ich gerne.

      Kommentar


      • #4
        Zitat von nikosch77
        Und nun nochmal in deutsch bitte. Du möchtest mit regExpr die Kommas, oder doch eher die Feldbezeichner aus der gegebenen Query auslesen? Die Aliase auch?
        Entferne erstmal die Funktionen also:
        Zeichenkette+keine Lücke+Klammer+alle Zeichen bis zur Klammer+Klammer,
        dann bist du schon fast am Ziel,
        dann alles zwischen SELECT und FROM und schließlich explode (',')...
        Ich will einfach rausfinden, wie viele Spalten in die sql anweisung geschrieben wurden. Das kann ich ja mit den Kommas machen. Und da in der DATE_FORMAT in der Klammer auch ein Komma ist, würde das das Ergenis verfälschen, da sosnt ja sonst eine Spalte zu viel gezählt wurde.

        Vestanden?

        Kommentar


        • #5
          Warum zählst du nicht die Länge der durch den SQL-Befehl erzielten Ergebnismenge?

          Kommentar


          • #6
            wenn ich eine andere sql anweisung eingebe geht das ja nicht mehr. soll ja variabel sein

            Kommentar


            • #7
              Den entsprechenden Teil sondieren:
              preg_match: #SELECT(.*)FROM#Uis

              Funktions-Aufrufe durch Platzhalter ersetzen:
              preg_replace: #([\w])+\(.*\)#Uis, $1

              Spalten zählen:
              substr_count + 1

              Keine Ahnung obs klappt, aber so würde ich es wohl angehen.

              Kommentar


              • #8
                er will wirklich die kommas..
                falls du selbst die query erstellst wäre der umgekehrte weg wohl sinnvoller, die query aus einem array zusammenzubauen. dann hast du automatisch die anzahl der felder.

                Kommentar


                • #9
                  hallo nikosch77,

                  > Ich will einfach rausfinden, wie viele Spalten in die sql anweisung geschrieben
                  > wurden.
                  Sorry, wenn ich nochmal nachfrage, aber diese Aussage ist keine Begründung, sondern eine Folge deines Grundes. In welchem Anwendungsdesign sollte man so etwas brauchen? Wenn du die Applikation sauber in Datenschicht, Business-Schicht und Präsentations-Schicht trennst und mit Domänen-Objekten arbeitest, kannst du eine Tabelle generisch dadurch erstellen, in dem du das Domain-Object fragst, wie viele Entries enthalten sind etc. Nach sauber überlegtem Design hört sich das nicht an, sondern nach absolutem Gefrickel...

                  Kommentar


                  • #10
                    die query aus einem array zusammenzubauen
                    Da muss ich Nikosch zustimmen. Das ist die Sache, die Du verwenden solltest.
                    Im Hinblick auf den Wissensstand des Fragestellers ist wohl das von Dr.e. angesprochene 3-Schichten-Model (für manches wohl besser) aber (noch) ungeeignet.

                    Kommentar


                    • #11
                      Zitat von pepe24
                      Im Hinblick auf den Wissensstand des Fragestellers ist wohl das von Dr.e. angesprochene 3-Schichten-Model (für manches wohl besser) aber (noch) ungeeignet.

                      naja objektorientiert kann ich nicht.

                      aber wo kann man was über das 3-Schichten-Model finden?

                      Kommentar


                      • #12
                        Hallo anno,

                        3-Schicht-Architektur ist ein Pattern der objektorientierten Welt.

                        Was Literatur angeht:

                        Hilfreich sind sicher die WIKI-Seiten:

                        - http://de.wikipedia.org/wiki/Entwurfsmuster
                        - http://de.wikipedia.org/wiki/Martin_Fowler
                        - http://de.wikipedia.org/wiki/Mehrschichtigkeit
                        - http://de.wikipedia.org/wiki/Dreischichtige_Architektur
                        - http://de.wikipedia.org/wiki/Anwendungsdom%C3%A4ne

                        Insbesondere als Bücher sind empfehlenswert:

                        - Martin Fowler: UML Distilled
                        - Martin Fowler: Patterns of Enterprise Application
                        - Christoph Reeg: Datenbanken, PHP und MySQL

                        Kommentar


                        • #13
                          ok thx.

                          ich lese mir das mal durch und schaue dann das von mir besser zu machen.

                          Kommentar


                          • #14
                            Solltest du Fragen haben, dann melde dich!

                            Kommentar

                            Lädt...
                            X