Ankündigung

Einklappen
Keine Ankündigung bisher.

Datensätze nach Zahlenwerten filtern

Einklappen

Neue Werbung 2019

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

  • Datensätze nach Zahlenwerten filtern

    Liebe Communiy,

    bald steht ein Umzug der Datenbank bevor. Für ein Restpostensystem muss ich den Umzug nun so komfortabel wie möglich gestalten.

    Die neue Datenbank besitzt eine Spalte "Preis". In dieser Spalte soll logischerweise ein Zahlenwert stehen.

    In der alten Datenbank ist es nun so, dass die Kunden ganz wilde Sachen in den Preisinput geschrieben haben und die Tabelle in der Datenbank echt vermüllt ist. Beispielangaben sind: 0,27/ Stk./Netto/ab Lager€ oder ab 14,50 €/100 Stück€. Mein Chefprogrammierer möchte so wenig Datenpflege wie möglich betreiben und ich soll jetzt versuchen, die Datensätze so zu filtern, dass im besten Fall nur die Zahlenwerte angezeigt werden (aus den oben genannten Beispielanzeigen).

    Ich habs bereits mit regular expression versucht aber das hat nicht funktioniert.

    Hat irgendwer eine Lösung oder Hilfestellung wie ich nur die Zahlenwerte mit explode oder sonst was aus den verschiedenen Preisangaben ziehen kann?

    MfG

    Daniel


  • #2
    Zitat von kovada Beitrag anzeigen
    Ich habs bereits mit regular expression versucht aber das hat nicht funktioniert.
    Und wie sah dein Versuch aus?
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      Code:
      <?php	
      	$preistmp1 = $row->preis;
      	$preistmp2 = preg_replace('/[^0-9]/','',$preistmp1);
              echo $preistmp2;
      ?>
      Jetzt werden zwar nur die Zahlen angezeigt, aber ich weiß nicht ob sie zur Stückzahl gehören und werden zusammengefügt (145 oder 525 oder so sachen halt)

      Irgendwie muss es klappen, sodass der Datensatz ab 0,99 € auf Anfrage nur die Zahl 0,99 (mit Komma) liest und dann aufhört..

      MAN BEDENKE: Der Datensatz kann auch so aussehen: Ab 0,99€/100STK-sofort

      Kommentar


      • #4
        Was mir Spontan einfallen würde, wäre, die Datensätze irgendwo Zwischenspeichern -> nach Zahlen Filtern -> neuen Wert in die Tabelle eintragen.
        Mein Chefprogrammierer möchte so wenig Datenpflege wie möglich betreiben
        Das Problem was ich hier allerdings sehe ist, auch wen du die Datensätze gefiltert & neu eingetragen hast das Problem nur Zeitweiße gelöst ist.
        Für die Zukunft, statt erst so spät nach den Daten zu Filtern schon beim Eintragen in die Datenbank Filtern für das, was genau da rein soll.
        Wenn ihr die neue Datenbank eingenommen habt & Du jetzt alles Ordnungsgemäß gefilter hast werden die Kunden auch in die neue Datenbank so
        reinschreiben 0,27/ Stk./Netto/ab Lager€. also einfach schon in der Eingabe Filtern und nur das reinschreiben was gebraucht wird.

        Kommentar


        • #5
          das neue restpostensystem arbeitet ein bisschen anders, die kunden können die inputs nicht mehr nach belieben vollschreiben. beim preis wird nur ein zahlenwert akzeptiert..

          geht wirklich nur um die alten datensätze die herübergezogen werden.. und da es tausende sind möchte ich nicht derjenige sein, der datensatz für datensatz durchgeht

          Kommentar


          • #6
            Ich würde sowas trotzdem händisch durchgehen. Menschen machen Fehler und falsche Beträge, die nachher in den Feldern stehen sind unter Umständen schwer zu finden oder du hast nachher andere Probleme. Lieber einmal richtig machen, auch wenns Zeit kostet.
            Current Projects: http://www.welten-buch.de, http://neu.zooadoo.de

            Kommentar


            • #7
              Zitat von kovada Beitrag anzeigen
              Irgendwie muss es klappen, sodass der Datensatz ab 0,99 € auf Anfrage nur die Zahl 0,99 (mit Komma) liest und dann aufhört..

              MAN BEDENKE: Der Datensatz kann auch so aussehen: Ab 0,99€/100STK-sofort
              Dann hol dir den Preis mit preg_match und mache im 2.Schritt aus den Komma ein Punkt. Ob es vom Grundsatz ohne manuelles Eingreifen möglich ist deine Werte zu ändern kann ich nicht beurteilen.
              Ein Gedanke noch:
              Den RegEx für einen Preis relativ scharf formulieren und alle Preise die nicht matchen in eine Tabelle ausgeben und manuell nachpflegen.
              PHP-Klassen auf github

              Kommentar


              • #8
                Zitat von jspit Beitrag anzeigen
                Dann hol dir den Preis mit preg_match und mache im 2.Schritt aus den Komma ein Punkt. Ob es vom Grundsatz ohne manuelles Eingreifen möglich ist deine Werte zu ändern kann ich nicht beurteilen.
                Ein Gedanke noch:
                Den RegEx für einen Preis relativ scharf formulieren und alle Preise die nicht matchen in eine Tabelle ausgeben und manuell nachpflegen.
                Oder so, aber das ist eben immer das, wenn man den Kunden erlaubt alles einzugeben. Als Entwickler denkt man immer typenspezifisch, aber die kunden hauen alles rein. hab ich auch schon mit telefonnummern erlebt. ne externe firma gibt als telefonnummerfeld eine textarea an ohne überprüfung und zack die kunden tragen mist ohne ende ein. und den salat hatte ich am ende, obwohl ich die daten nur entgegennehmen sollte.
                Current Projects: http://www.welten-buch.de, http://neu.zooadoo.de

                Kommentar

                Lädt...
                X