Ankündigung

Einklappen
Keine Ankündigung bisher.

UPDATE (switch) boolean

Einklappen

Neue Werbung 2019

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

  • UPDATE (switch) boolean

    Moin,

    ich möchte gern einen boolschen Wert (0,1) per submit/POST hin- und herwechseln.

    Dazu habe ich folgendes
    PHP-Code:
    if($dsPr["aktiv"] = '1'){
        
    $sqlAk "UPDATE kunde SET"
            
    " aktiv = '0'"
            
    " WHERE ID = " $_POST["aktivieren"];
    }
    elseif(
    $dsPr["aktiv"] = '0'){
        
    $sqlAk "UPDATE kunde SET"
            
    " aktiv = '1'"
            
    " WHERE ID = " $_POST["aktivieren"];

    Der Wechsel von 1 zu 0 klappt problemlos. Von 0 auf 1 aber nicht.

    Hat jemand vielleicht einen Tipp für mich? Im Netz findet man zwar durchaus etwas dazu (vor allem komme ich durch verschiedene Suchen immer wieder auf stackoverflow.com), aber dem entnehme ich nur, dass es eigentlich klappen müsste. Tut's aber nicht. Kann natürlich sein, dass ich das nicht richtig verstehe.

    Ich hab' auch schon verschiedene Modifikationen durchprobiert. Statt 1 und 0 TRUE und FALSE. 1 und 0 mit und ohne ' '. else, statt elseif. Immer dasselbe: von 1 auf 0 klappt, zurück nicht. Ich bekomme auch keine Fehlermeldung.

    Probehalber hab' ich auch mal von TINYINT auf INT umgestellt. Dasselbe ... Standart ist auf 'Wie definiert: 1' gesetzt.

    Danke!

  • #2
    PHP-Code:
    if($dsPr["aktiv"] = '1'){
    //...
    elseif($dsPr["aktiv"] = '0'){ 
    = ist eine Zuweisung, == bzw. === ein Vergleich! https://php-de.github.io/jumpto/if/#...he-fallstricke
    The string "()()" is not palindrom but the String "())(" is.

    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      hm .. Danke! Allerdings habe ich == bzw. === durchaus probiert. Auch in Kombination mit den o.g. Variationen. Immer dasselbe! Komisch m.E. ohnehin, dass es ja in die eine Richtung durchaus gut funktioniert. D.h. ich würde erwarten, dass es entweder ganz oder gar nicht funktioniert.

      Die Fehlerbenachrichtigung in der ini ist bei mir aktiviert. Ich bekomme als schon Fehlermeldungen. Nur eben nicht hier.

      Kommentar


      • #4
        1. = ist auf jeden Fall falsch.

        2. Dann musst du es debuggen - den Fehler finden. Dabei geht man so vor:

        https://php-de.github.io/jumpto/faq/#debugging

        https://php-de.github.io/jumpto/sql/

        EDIT:

        3. Du hast da übrigens eine SQL-Injection Lücke, da kann dir jeder von außen leicht die DB löschen.
        PHP-Code:
                " WHERE ID = " $_POST["aktivieren"]; 
        The string "()()" is not palindrom but the String "())(" is.

        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
        PHP.de Wissenssammlung | Kein Support per PN

        Kommentar


        • #5
          Wo kommt $dsPr["aktiv"] denn her?
          Wenn du etwas mit POST absendest, erwartet man ja auch dass da irgendwo ein $_POST[] im Code vorkommt, dem ist aber nicht so, ausser der Kunden-Id die du auch noch irreführend bezeichnest.

          Kommentar


          • #6
            hm .. $dsPr kommt aus einer vorherigen Suche (SELECT). Nach meiner Logik: suche den Datensaztz yx, schau# nach was drin steht; wenn 1 ändere auf 0, wenn 0 ändere auf 1.

            D.h. vorher steht bei mir
            PHP-Code:
            if(isset($_POST["ada"])){

                
            $con mysqli_connect("","root","root");
                
            mysqli_select_db($con"db");

                
            $sqlPr "SELECT aktiv FROM kunde"
                        
            " WHERE ID = " $_POST["aktivieren"];

                
            $resPr mysqli_query($con$sqlPr);
                
            $dsPr mysqli_fetch_assoc($resPr);

                if .......

            Kommentar


            • #7
              Du fragst keinerlei Fehler ab.. Bitte schau dir die Links oben an, debugge es durch, dann ist es in 5 Min. erledigt. Alles andere ist Mutmaßung/Zeitverschwendung.
              The string "()()" is not palindrom but the String "())(" is.

              Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
              PHP.de Wissenssammlung | Kein Support per PN

              Kommentar


              • #8
                o.k. - ich versuch's!

                Kommentar

                Lädt...
                X