Ankündigung

Einklappen
Keine Ankündigung bisher.

String überprüfen

Einklappen

Neue Werbung 2019

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

  • String überprüfen

    Hi,

    ich habe eine Spalte in der Datenbank(mysql) über Kursdaten als Text. Die heisst $termin.

    $termin besteht überwiegend aus Datums. Beispielweise:
    "17.05.2008,17.06.2008"

    Manchmal steht in $termin aber auch ein Text:
    "17.05.2008,17.06.2008,Weitere kursbeginne auf Anfrage!"

    Wie kann ich überprüfen, ob die Variable termin auch Buchstaben beinhaltet:
    Mein Ansatz war:

    if (preg_match('#^[a-z]+$#i', $row['Termin']))

    Aber da kriege ich unrichtige Ergebnisse!

    Gruß

  • #2
    Hallo mako,

    was sind denn "unrichtige" Ergebnisse? Also was erwartest du, und was bekommst du?

    Mit deinem regulären Ausdruck prüfst du momentan, ob in $row['Termin'] nur Buchstaben enthalten sind. Ein "^" am Anfang bedeutet "muss starten mit" und ein $ am Ende "muss enden mit".... das willst du ja aber eigentlich garnicht.


    Ich schätze mal den Tipp: "Nicht so einen Murks in ein Datumsfeld speichern und für ein Datum in der DB datetime o.ä. Feldtypen verwenden" kann ich mir sparen"

    Kommentar


    • #3
      Das Pattern, das du verwendest, sucht einen String der nur aus Buchstaben besteht. Du solltest nochmal die Regex Zeichen ^ und $ im Handbuch nachsehen.

      Der korrekte Plural von Datum ist Daten - leider.
      "unrichtig" ist ein tolles Wort.

      Edit: Subbi, ein paar Sekunden zu lahm.

      Kommentar


      • #4
        Manchmal kann ich ohne Code und präzise Informationen helfen, manchmal aber auch nicht.

        (zu langsam)

        Kommentar


        • #5
          Im Klartext:

          Code:
          vereinfachte Positivprüfung: #^[0-9,\.]*$#
          Negativprüfung:              #[a-z]#i
          bzw. Negativprüfung:         #[^0-9,\.]#

          Kommentar


          • #6
            was sind denn "unrichtige" Ergebnisse? Also was erwartest du, und was bekommst du?
            Sorry in der Eile habe ich übersehen, dass "unrichtig" ja eigentlich falsch ausgedrückt ist. lol

            Mit deinem regulären Ausdruck prüfst du momentan, ob in $row['Termin'] nur Buchstaben enthalten sind. Ein "^" am Anfang bedeutet "muss starten mit" und ein $ am Ende "muss enden mit".... das willst du ja aber eigentlich garnicht.
            Genau daran lag es. Musste "^" und "$" rausnehmen und es klappte dann auch.


            Ich schätze mal den Tipp: "Nicht so einen Murks in ein Datumsfeld speichern und für ein Datum in der DB datetime o.ä. Feldtypen verwenden" kann ich mir sparen"
            Das sehe ich auch so allerdings an der Struktur der Tabelle darf nichts geändert werden.(Ist halt vorgabe.) Die Termine sind allerdings einzeln als Datetime zusätzlich in DB vorhanden.

            Gruß und Danke für Eure Hilfe

            Kommentar

            Lädt...
            X