Das Deutsche PHP Forum

Einklappen
Keine Ankündigung bisher.

Das Deutsche PHP Forum

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

  • mySQL Problem mit Leerzeichen

    Hallo zusammen,

    vielleicht kann mir wer helfen. Ich habe ein Update Statement in PHP welches einen String aus einer Textarea in die Datenbank schreiben soll. Leider benutzen die User auch immer mal Enter. Das möchte ich verhindern.

    Ich habe gedacht, dass ein einfaches trim reicht. Kann mir wer helfen?

    PHP-Code:
    $sql "UPDATE " UMFRAGE_TABLE_NAME " SET  f09 = '" . ( isset($_POST['Q0' $intHelper]) ? trim($_POST['Q0' $intHelper]) : '' ) .
          
    "', t09 = '" . ( isset($_POST['T0' $intHelper]) ? mysql_real_escape_string(trim($_POST['T0' $intHelper])) : '' ) .
          
    "' WHERE uid = '" $sessIDD "'"
    Vielen Dank schon einmal.

  • #2
    Wieso sollte das helfen? Ich kann ja auch im Text Enter drücken, nicht nur am Rand.


    Du musst übrigens alle Daten maskieren, nicht nur die aus dem Textarea. Und - mal drüber nachgedacht, wenn keines der mit isset abgefragten Felder ausgefüllt wurde? Dann trägst Du nen leeren Datensatz ein oder wie?
    --
    ^^ O.O
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Hi daniel, dein Query sieht ziemlich unübersichtlich aus. Bist du sicher, dass du Tabellennamen als Konstanten verwenden willst? Ändern die sich oder ist es wahrscheinlich, dass sie sich ändern? Auch das Einfügen der Spaltenwerte finde ich ziemlich unübersichtlich:

      PHP-Code:
      <?php
      function removeNewLines($string)
      {
        
      $string strtr($string, array("\r\n" => " ""\r" => " ""\n" => " "));
        return 
      $string;
      }

      $f09 = isset($_POST['Q0' $intHelper]) ? $_POST['Q0' $intHelper] : '';
      $f09 removeNewLines($f09);
      $f09 trim($f09);

      $t09 = isset($_POST['T0' $intHelper]) ? $_POST['T0' $intHelper] : '';
      $t09 removeNewLines($t09);
      $t09 trim($t09);

      $query sprintf(
        
      "UPDATE %s SET f09 = '%s', t09 = '%s' WHERE uid = '%s'",
        
      UMFRAGE_TABLE_NAME,
        
      mysql_real_escape_string($f09),
        
      mysql_real_escape_string($t09),
        
      mysql_real_escape_string($sessIDD)
      );
      Und die Spaltennamen .. Wenn du mehrere Fragen/Antworten hast, solltest du sie in Zeilen expandieren, nicht in Spalten. Aber das ist wohl eine andere Problematik und vlt. ein neues Thema wert, falls es dich interessiert.
      Zuletzt geändert von Chriz; 19.10.2012, 11:19. Grund: Syntaxfehler
      "Mein Name ist Lohse, ich kaufe hier ein."

      Kommentar


      • #4
        danke für die Antworten.

        Kommentar

        Lädt...
        X