Kein Eintrag in MSSQL-DB

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

  • Kein Eintrag in MSSQL-DB

    Hallo Forum,

    ich habe ein Problem mit MSSQL:
    ich greife über PHP auf eine MSSQL-DB zu und möchte im PHP-Skript dem Benutzer über eine CHECKBOX die Möglichkeit geben, zu einem Thema "JA" oder "NEIN" anzukreuzen. In der entsprechenden Tabellenspalte möchte ich dann auch nur "O" oder "1" stehen haben, aber:
    ich kriege überhaupt keinen Eintrag in der Tabellenspalte.
    Meine Variable in PHP wird mit einem Wert gefüllt, alles kein Problem, aber nix in der Spalte. Ich habe es schon mit nvarchar, int, char und binary probiert, aber nichts zu machen. Außerdem habe ich alle Variablen-Bezeichnungen überprüft, ich habe mich NICHT verschrieben ;-).
    Any ideas?
    Danke
    System:
    PHP 4.1.2
    MS SQL Server 2000
    Win NT4 SP 6 auf PIII

  • #2
    wie wäre es mit mehr info, zb. den code von dir...
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Okay, hier kommt der Code...
      PHP/HTML:
      PHP-Code:
      <form>
      <table>
      <tr>
      <td><input type="checkbox" name="erledigt" value='<? echo $erledigt; ?>'>erledigt</td>
      </tr>
      </table>
      </form>
      etc...

      If-Klausel:
      PHP-Code:
      if (isset($erledigt))
          {
          
      $erledigtDB "Y";
          }
          else
          {
          
      $erledigtDB "N";
          }
          echo 
      $erledigtDB
      SQL:
      Nur die Abfrage (gekürzt)
      PHP-Code:
      $sql "Insert into $tabellenname (erledigt) values ('$erledigtDB')"
      Verbindung zur DB ist gegeben, der Rest der Abfrage funktioniert auch.
      Sollte doch klappen, oder habe ich da einen eklatanten Denkfehler?

      EDIT:
      php.tags powered by Abraxax
      Zuletzt geändert von Abraxax; 30.05.2003, 12:10.
      System:
      PHP 4.1.2
      MS SQL Server 2000
      Win NT4 SP 6 auf PIII

      Kommentar


      • #4
        was ist hier für eine ausgabe, wenn du das testest?
        PHP-Code:
        $sql "Insert into ".$tabellenname." (erledigt) values ('".$erledigtDB."')";
        $res mysql_query($sql) or die(mysql_error); 
        und wenn du diesen code statt deinem noch zusätzlich änderst?
        PHP-Code:
        if (isset($_POST["erledigt"]))
            {
            
        $erledigtDB "Y";
            }
            else
            {
            
        $erledigtDB "N";
            }
            echo 
        $erledigtDB
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Hi,

          sorry, hatte noch eine Besprechung eben.
          Also:
          Habe die Skripte verändert nach deinen Vorschlägen. Fakt ist, dass aus der Variablen über den "echo"-Befehl immer die richtigen Werte (Y,N) ausgegeben werden, aber trotzdem nichts in der DB landet. Kurioserweise werden alle anderen Felder (Auswahllistenfelder und Textareas) korrekt an die DB übergeben. Im Moment hat das entsprechende Tabellenfeld in der SQL-DB den Datentyp 'nvarchar'. Ich wollte eigentlich ursprünglich den Datentyp 'int' benutzen, um mir nur '0' oder '1' ausgeben zu lassen, aber egal.
          Mit 'nvarchar' muss es doch funktionieren, oder? Ich bin ratlos....
          System:
          PHP 4.1.2
          MS SQL Server 2000
          Win NT4 SP 6 auf PIII

          Kommentar


          • #6
            ich kenne nvarchar nicht, da ich ja mit mysql arbeite. das prinzip sollte aber das gleiche sein.

            muss du da nciht nvarchar(1) oder so schreiben? was ist mit dem feldtyp ENUM?
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              'nvarchar' entspricht 'varchar' bei MySQL, stimmt.

              Den Feldtyp 'enum' bietet MSSQL nicht an, aber das ist nicht das Problem.
              Wenn ich einen string´, also "Y", an die DB übergebe, erwarte ich ja, dass der string als Wert einer Variablen in der Tabellenspalte erscheint.

              Das tut er aber nicht, unabhängig vom Feldtyp. Heul!!!
              Was nun? Liegt es an der MSSQL-Datenbank?
              System:
              PHP 4.1.2
              MS SQL Server 2000
              Win NT4 SP 6 auf PIII

              Kommentar


              • #8
                Original geschrieben von felix_a
                Was nun? Liegt es an der MSSQL-Datenbank?
                ob es an deiner DB liegt weiss ich nicht. hast du phpmyadmin drauf oder was ähnliches?

                dann teste doch mal deine query alleine.
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9

                  Es ist unglaublich:
                  ich habe die if-Schleife der Checkbox-Variablen außerhalb der Schleife mit der INSERT-Anweisung gesetzt. Dann KANN es ja nicht funzen.
                  Zum Heulen.
                  Trotzdem Danke für dein Engagement und schönes WE!!!
                  Felix

                  System:
                  PHP 4.1.2
                  MS SQL Server 2000
                  Win NT4 SP 6 auf PIII

                  Kommentar


                  • #10
                    tja. wie einfach ein fehler sein kann...

                    dir auch ein schönes warmes WE.
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar

                    Lädt...
                    X