String vergleich Klappt nur einmal!

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

  • String vergleich Klappt nur einmal!

    Hallo,
    habe Problem beim Vergleich zweier Strings.
    Der erste String wird aus der Datenbank generiert, der zweite String bezieht sich auf die Eingabe des Users aus dem Formular.
    Wenn die Beiden Übereinstimmen soll eine andere Aktion stattfinden als wenn eben nicht.
    So:

    PHP-Code:
    if($row_Datensatzstring['Ort'] != $_POST['Ort']) 
    {
    mache dies}
    else {
    mache das
    Das funktionirt nur einmal! Beim zweiten mal macht er weder dies noch das.

    Auch:
    PHP-Code:
    if(strcmp($row_Datensatzstring['Ort'],$_POST['Ort']) !=0)
    mache dit sonst dat 
    funzt auch nicht.
    Weis jemand wie geht?
    Die Usereingabe wird korrekt eingelesen und in die Datenbank gespeichert.
    Der Datensatz aus der Datenbank stimmt auch.
    Aber wenn die zwei verglichen werden, klappt es eben immer nur beim ersten mal das die entsprechende Aktion ausgeführt wird!
    Vielen Dank schon mal im voraus
    Das Leben ist kein Ponyhof.

  • #2
    Re: String vergleich Klappt nur einmal!

    Original geschrieben von Wendel
    Das funktionirt nur einmal! Beim zweiten mal macht er weder dies noch das.
    was heißt "beim ersten, beim zweiten mal" - innerhalb der selben seite? oder nächster aufruf des scriptes? ...?


    hast du dir die beiden vergleichswerte mal zur kontrolle ausgeben lassen, noch mit einem begrenzungs-zeichen davor und dahinter, damit du auch leerzeichen o.ä. nicht übersiehst? (z.b. echo '#'.$wert.'#'

    hast du dabei auch in die quelltext-ansicht geschaut, ob nicht htmlentities o.ä. dir einen streich spielt?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Das ganze läuft innerhalb einer Seite (PHP_SELF)
      Ausgegeben wird das ganze nach Trimmen (leerzeichen)korrekt.
      Aber die gewünschte änderung findet eben nur einmal statt.
      Wat sind htmlentities? Sorry kann ich so jetzt erst mal nicht viel mit anfangen.Entität (aus dem lateinischen glaub ich) Das dasein eines Dings?
      Bringt mich aber nicht wirklich weiter.
      Kannst Du das genauer erklären?
      Alles andere ist geprüft.
      Thanks
      Stop, da steht was von htmlentitäten.
      an die string variable zum Server wird was angehängt.
      $string .= '?' . htmlentities($_Server(String_Query))
      Da werden wohl meine Variablen übergeben wenn ich das recht verstehe.
      nachdem die änderungen erfolgt sind wird das ganze zum string zusammengesetzt und übergeben.
      Nur wenn ich mir das ausgeben lasse stimmt ja alles!
      Trotzdem ist beim zweiten mal die Bedingung für Ihn nicht erfüllt?
      Das Leben ist kein Ponyhof.

      Kommentar


      • #4
        Original geschrieben von Wendel
        Ausgegeben wird das ganze nach Trimmen (leerzeichen)korrekt.
        und vor dem vergleichen trimmst du ebenfalls? (sehe ich in deinem codeschnippsel gerade nicht ...)

        Stop, da steht was von htmlentitäten.
        an die string variable zum Server wird was angehängt.
        $string .= '?' . htmlentities($_Server(String_Query))
        bestimmte sonderzeichen haben in HTML besondere schreibweisen, sog. entities.
        ein ä lässt sich z.b. als ä notieren - dies ist nicht immer erforderlich, aber kann gemacht werden.

        Nur wenn ich mir das ausgeben lasse stimmt ja alles!
        deshalb solltest du dir die testausgabe im quelltext ansehen, und nicht in der HTML-ansicht des browsers - der stellt nämlich ä und ä ebide als ä dar, aber für PHP wären die natürlich nicht gleich.

        also, gibt's da irgendwelche unterschiede bzgl. sonderzeichen o.ä.?
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Ähm in meinen versuchen handelt es sich um Zahlen.
          Habe ich gemacht um solche sachen erst mal ausschließen zu können.
          Trim führe ich direkt vor dem Vergleich aus.
          Muss ich bei Zahlen die als string gespeichert werden irgendwas beachten?
          Weil ich führe mehrere vergleiche für mehrere Strings aus.
          (Die ich alle vorher zusammen setze und wieder auseinander fiddel.)
          Im moment habe ich mich aber auf das eine Ding konzentriert und deshalb auf Zahlenwerte zurückgegriffen.
          Sorry vielleicht dämlich die Frage, aber wie lasse ich mir variablen im Quelltext ausgeben?
          Das Leben ist kein Ponyhof.

          Kommentar


          • #6
            Re: String vergleich Klappt nur einmal!

            PHP-Code:
            echo levenshtein ($row_Datensatzstring['Ort'], $_POST['Ort']); 
            Die Zeit hat ihre Kinder längst gefressen

            Kommentar


            • #7
              wie lasse ich mir variablen im Quelltext ausgeben?
              PHP-Code:
              echo $var;
              print_r($var);
              var_dump($var); 
              Die Zeit hat ihre Kinder längst gefressen

              Kommentar


              • #8
                levenshtein gibt immer!1zurück selbst wenn $_POST['ORT']mit festem wert verglichen wird.
                Hab das ganze jetzt mit $_Get[ort] gemacht und der wert der übergeben wird stimmt.
                strcmp gibt 0 zurück levenshtein 1 ???
                aber er führt die if anweisung trotzdem einfach nicht aus.
                muss jetzt erst mal frische Luft schnappen um nicht durchzudrehen.
                erst ma schon ma danke an den Wahrsager und Hundesohn.
                bin mit meinem Latein am Ende. sollte levenshtein 0 oder 1 zurückgeben wenn die beiden gleich sind ?
                im manual steht nur das levenshtein -1 zurückgibt wenn der stringlänger als 255 zeichen ist? sonst nix.
                Das Leben ist kein Ponyhof.

                Kommentar


                • #9
                  Original geschrieben von Wendel
                  sollte levenshtein 0 oder 1 zurückgeben wenn die beiden gleich sind ?
                  im manual steht nur das levenshtein -1 zurückgibt wenn der stringlänger als 255 zeichen ist? sonst nix.
                  doch, da steht auch
                  Die Levenshtein-Differenz ist definiert als die minimale Anzahl an Zeichen, die ersetzt, eingefügt oder gelöscht werden müssen um den str1 nach str2 umzusetzen.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    selbst wenn $_POST['ORT']mit festem wert verglichen wird.
                    Hab das ganze jetzt mit $_Get[ort] gemacht und der wert der übergeben wird stimmt.

                    ich hatte vorausgesetzt, daß dir die herkunft der daten bekannt ist!?

                    mittels
                    PHP-Code:
                    echo '<pre>';
                    var_dump($_GET);
                    var_dump($_POST);
                    echo 
                    '</pre>'
                    solltest du dir klarheit verschaffen
                    Die Zeit hat ihre Kinder längst gefressen

                    Kommentar


                    • #11
                      moin, natürlich war mir die Herkunft der Daten Bekannt zumindest dachte ich das !
                      Der eine string kam aus der Datenbank und den anderen habe ich selbst eingegeben.
                      Dank eurer Hilfe habe ich den Fehler jetzt gefunden.
                      Der direkt ausgegebene string hat nämlich nicht mit dem übereingestimmt, was in der Datenbank stand!
                      Sorry dusseliger Fehler meinerseits. Abfrage korrekt, Zeile Korrekt, Spalte korrekt aber Falsche Tabelle!
                      Da die Daten von der vorläufigen Tabelle in die Feste übertragen werden, sah es immer so aus, als stimmte der Wert. Aber in wirklichkeit, war ich ja schon einen Schritt weiter!
                      Also nochmals Dankeschön euch beiden.
                      Bis demnächst auf diesem oder jenem Bildschirm.
                      Wendel
                      Das Leben ist kein Ponyhof.

                      Kommentar

                      Lädt...
                      X