Ankündigung

Einklappen
Keine Ankündigung bisher.

UPDATE ohne Wertänderung

Einklappen

Neue Werbung 2019

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

  • UPDATE ohne Wertänderung

    Ich habe eine Funktion zur Statusänderung meines Auftrags geschrieben. Nun möchte ich den Status aktualisierter machen. Beim ausführen wird kein Fehler ausgegeben. Es kommt die Meldung, dass der Status erfolgreich geändert wurde. Dennoch werden die Werte nicht in die Datenbank eingetragen. Im Formular wird die ID richtig angezeigt. Wird sie ggf nicht richtig übergeben ?


    Code:
    <?php
    session_start();
    require_once( "../inc/config.php" );
    require_once( "../inc/functions.php" );
    $user = check_user();
    $transportid = $_POST[ "hiddenfeld" ];
        $statement = $pdo->prepare("SELECT * FROM transportauftrag WHERE transportid = :transportid");
        $editkunde = $statement->execute(array('transportid'=> $transportid));
        $warenstrukturabfrage = $statement->fetch();
    if (isset($_GET['createstatus'])) {
        $error = false;
        $transportid = trim($_POST['transportid']);
        $statustransport = trim($_POST[ 'statustransport' ]);
        $statustransport2 = trim($_POST[ 'statustransport2' ]);
    $statusabweichung = trim($_POST[ 'statusabweichung' ]);
    $statusabweichung2 = trim($_POST[ 'statusabweichung2' ]);
        $rechnungsstatus = trim($_POST[ 'rechnungsstatus' ]);
    $rechnungsstatus2 = trim($_POST[ 'rechnungsstatus2' ]);         
    
        $resultdiv = 0;
        //auftrag anlegen
        if(!$error) {
            $statement2 = $pdo->prepare("UPDATE transportauftrag SET
            statustransport = :statustransport,
            statustransport2 = :statustransport2,
            statusabweichung = :statusabweichung,
            statusabweichung2 = :statusabweichung2,
            rechnungsstatus = :rechnungsstatus,
            rechnungsstatus2 = :rechnungsstatus2,
            status_updated=NOW() WHERE transportid = :transportid");
    $result2 = $statement2->execute(array(
    'statustransport' => $statustransport,
    'statustransport2' => $statustransport2,
    'statusabweichung' => $statusabweichung,
    'statusabweichung2' => $statusabweichung2,
    'rechnungsstatus' => $rechnungsstatus,
            'rechnungsstatus2' => $rechnungsstatus2,
            'transportid' => $transportid
    ));
            if($result2) {
                $resultdiv = 1;
            } else {
                $resultdiv = 2;
            }
    
        }
    }
    $user = check_user();
    ?>
    <?php include("../components/header.php")?>
    
    
    
    
    
        <div class="wrapper">
    
    
            <div class="main-panel">
                <nav class="navbar navbar-transparent navbar-absolute">
                    <div class="container-fluid">
                        <div class="navbar-minimize">
                            <button id="minimizeSidebar" class="btn btn-round btn-white btn-fill btn-just-icon">
    <i class="material-icons visible-on-sidebar-regular">more_vert</i>
    <i class="material-icons visible-on-sidebar-mini">view_list</i>
    </button>
    
    
                        </div>
                        <div class="navbar-header">
                            <button type="button" class="navbar-toggle" data-toggle="collapse">
    <span class="sr-only">Toggle navigation</span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
    </button>
    
    
                            <a class="navbar-brand" href="#"> Transportauftrag <?php echo htmlentities($warenstrukturabfrage['transportid']);?></a>
                        </div>
                        <div class="collapse navbar-collapse">
                            <ul class="nav navbar-nav navbar-right">
    
                                <li>
                                    <a href="logout.php" class="dropdown-toggle" data-toggle="dropdown">
    <i class="material-icons">person</i>
    <p>Logout</p>
    </a>
    
    
                                </li>
                                <li class="separator hidden-lg hidden-md"></li>
                            </ul>
                        </div>
                    </div>
                </nav>
    
    
    
                <div class="content">
                    <div class="content">
                        <div class="container-fluid">
                        <?php
                            if($resultdiv == 1) {
                    echo '<div class="col-md-3 fc-center">
            <div class="card">
                <div class="card-content text-center">
                    <h5>Status gespeichert</h5>
                    <button href="../dashboard.php"class="btn btn-rose btn-fill">zurück zum Dashboard</button>
                </div>
            </div>
        </div>';
                } elseif($resultdiv == 2){
                    echo '<div class="col-md-3">
            <div class="card">
                <div class="card-content text-center">
                    <h5>Fehler </h5>
                    <button href="../dashboard.php"class="btn btn-rose btn-fill" >zurück zum Dashboard</button>
                </div>
            </div>
        </div>';
                } ?>
                            <div class="row">
                                <div class="col-md-12">
                                    <div class="card">
                                        <form action="?createstatus=1" method="post" class="form-horizontal">
                                            <div class="card-header card-header-text" data-background-color="rose">
                                                <h4 class="card-title">Status festlegen</h4>
                                            </div>
                                            <div class="card-content">
                                                <div class="row">
                                                    <label class="col-sm-2 label-on-left">interne Auftrag ID</label>
                                                    <div class="col-sm-10">
                                                        <div class="form-group label-floating is-empty">
                                                            <label class="control-label"></label>
                                                            <input type="text" name="transportid" value="<?php echo htmlentities($warenstrukturabfrage['transportid']); ?>" disabled="" class="form-control">
                                                        </div>
                                                    </div>
                                                </div>
                                                <div class="row">
                                                    <label class="col-sm-2 label-on-left">Bearbeiter</label>
                                                    <div class="col-sm-10">
                                                        <div class="form-group label-floating is-empty">
                                                            <label class="control-label"></label>
                                                            <input type="text" value="<?php echo htmlentities($warenstrukturabfrage['mitarbeiternachname']); ?>" disabled="" class="form-control">
                                                        </div>
                                                    </div>
                                                </div>
    <hr>
    <div class="row">
                                                    <label class="col-sm-2 label-on-left">Transportstatus</label>
                                                    <div class="col-sm-10">
                                                        <select name="statustransport" class="selectpicker" data-style="btn btn-primary btn-round" title="Single Select" data-size="7">
                                                            <option disabled selected>auswählen</option>
                                                            <option value="Auftrag erhalten">Auftrag erhalten</option>
    <option value="In Bearbeitung">In Bearbeitung</option>
    
                                                        </select>
                                                    </div>
                                                </div>
                                                <div class="row">
                                                    <label class="col-sm-2 label-on-left">Transportstatus Details</label>
                                                    <div class="col-sm-10">
                                                        <div class="form-group label-floating is-empty">
                                                            <label class="control-label"></label>
                                                            <input name="statustransport2" type="text" class="form-control">
                                                            <span class="help-block"></span>
                                                        </div>
                                                    </div>
    </div>
    <div class="row">
                                                    <label class="col-sm-2 label-on-left">Abweichungen</label>
                                                    <div class="col-sm-10">
                                                        <select name="statusabweichung" class="selectpicker" data-style="btn btn-primary btn-round" title="Single Select" data-size="7">
                                                            <option disabled selected>auswählen</option>
    
    <option value="Diebstahl">Diebstahl</option>
    <option value="Beschädigte Waren">Beschädigte Waren</option>
                                                        </select>
                                                    </div>
                                                </div>
                                                <div class="row">
                                                    <label class="col-sm-2 label-on-left">Transportabweichung Details</label>
                                                    <div class="col-sm-10">
                                                        <div class="form-group label-floating is-empty">
                                                            <label class="control-label"></label>
                                                            <input name="statusabweichung2" type="text" class="form-control">
                                                            <span class="help-block"></span>
                                                        </div>
                                                    </div>
    </div>
    <div class="row">
                                                    <label class="col-sm-2 label-on-left">Rechnungsstatus</label>
                                                    <div class="col-sm-10">
                                                        <select name="rechnungsstatus" class="selectpicker" data-style="btn btn-primary btn-round" title="Single Select" data-size="7">
                                                            <option disabled selected>auswählen</option>
                                                            <option value="Rechnung offen">Rechnung offen</option>
                                                            <option value="Rechnung bezahlt">Rechnung bezahlt</option>
                                                        </select>
                                                    </div>
                                                </div>
                                                <div class="row">
                                                    <label class="col-sm-2 label-on-left">Rechnungsstatus Details</label>
                                                    <div class="col-sm-10">
                                                        <div class="form-group label-floating is-empty">
                                                            <label class="control-label"></label>
                                                            <input name="rechnungsstatus2" type="text" class="form-control">
                                                            <span class="help-block"></span>
                                                        </div>
                                                    </div>
                                                </div>
    
    <br>
    <h6 class="text-center">Eingaben prüfen</h6>
    <hr>
    <input type="submit" value="eintragen" class="btn btn-fill btn-rose" style="margin: auto; display: flex;">
    
                                                                </div>
                                                            </div>
                                                        </div>
                                                    </div>
                                                </div>
    
                                            </div>
                                        </form>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    <?php include("../components/footer.php")?>
    
                </div>
            </div>

  • #2
    Bitte Code lesbar formatieren. Und keine Variablen nummerieren. Auch nicht Deutsch und Englisch vermischen. Entscheide dich für eine Sprache (bevorzugt Englisch).

    Hast du das Error-Reporting von PDO aktiviert?

    Mit rowCount kannst du prüfen, ob wirklich was geändert wurde:

    http://php.net/manual/de/pdostatement.rowcount.php

    Verwende übrigens niemals SELECT *, sondern gibt im SELECT immer die Spalten an, die du im Ergebnis erwartest.

    Kommentar


    • #3
      Und ob etwas ankommt im Script findest du mit:

      PHP-Code:
      var_dump($_POST); 
      heraus.

      Kommentar


      • #4
        Zitat von hellbringer Beitrag anzeigen
        Bitte Code lesbar formatieren.
        Ich habe das mal gemacht.
        Und weil CSS und die vielen Divs für das Problem irrelevant sind habe ich die auch entfernt.
        Es bleibt das reine Formular mit allen label und Input Elementen. Dies kannst du nun als extra Datei speichern und da erst mal nach dem Fehler suchen.

        Es fällt schon jetzt auf das du leere Label Elemente hast und
        $_POST[ "hiddenfeld" ]
        im Formular gar nicht vorkommt.
        Weiter habe ich nicht geschaut.

        PHP-Code:
        <?php
        session_start
        ();
        require_once( 
        "../inc/config.php" );
        require_once( 
        "../inc/functions.php" );

        $user check_user();
        $transportid $_POST"hiddenfeld" ];

        $statement $pdo->prepare("
            SELECT *
            FROM
                transportauftrag
            WHERE
                transportid = :transportid"
        );

        $editkunde $statement->execute(array('transportid'=> $transportid));
        $warenstrukturabfrage $statement->fetch();

        if (isset(
        $_GET['createstatus'])) {
            
        $error false;
            
        $transportid       trim($_POST'transportid' ]);
            
        $statustransport   trim($_POST'statustransport' ]);
            
        $statustransport2  trim($_POST'statustransport2' ]);
            
        $statusabweichung  trim($_POST'statusabweichung' ]);
            
        $statusabweichung2 trim($_POST'statusabweichung2' ]);
            
        $rechnungsstatus   trim($_POST'rechnungsstatus' ]);
            
        $rechnungsstatus2  trim($_POST'rechnungsstatus2' ]);         

            
        $resultdiv 0;
            
        //auftrag anlegen
            
        if(!$error) {
                
        $statement2 $pdo->prepare("
                UPDATE
                    transportauftrag
                SET
                    statustransport   = :statustransport,
                    statustransport2  = :statustransport2,
                    statusabweichung  = :statusabweichung,
                    statusabweichung2 = :statusabweichung2,
                    rechnungsstatus   = :rechnungsstatus,
                    rechnungsstatus2  = :rechnungsstatus2,
                    status_updated    = NOW()
                WHERE
                    transportid = :transportid"
        );
                
        $result2 $statement2->execute(array(
                    
        'statustransport'   => $statustransport,
                    
        'statustransport2'  => $statustransport2,
                    
        'statusabweichung'  => $statusabweichung,
                    
        'statusabweichung2' => $statusabweichung2,
                    
        'rechnungsstatus'   => $rechnungsstatus,
                    
        'rechnungsstatus2'  => $rechnungsstatus2,
                    
        'transportid'       => $transportid
                    
        )
                );

                if( 
        $result2 ) {
                    
        $resultdiv 1;
                } else {
                    
        $resultdiv 2;
                }

            }
        }
        $user check_user();

        ?>

        <form action="?createstatus=1" method="post">                                        

            <h4>Status festlegen</h4>                                        
            <label >interne Auftrag ID
            </label>                                                

            <input type="text" name="transportid" value="<?php echo htmlentities($warenstrukturabfrage['transportid']); ?>" disabled="" class="form-control">                                                    
            <label >Bearbeiter
            </label>                                                
            <input type="text" value="<?php echo htmlentities($warenstrukturabfrage['mitarbeiternachname']); ?>" disabled="" class="form-control">                                                    
            <hr>
            <label >Transportstatus
            </label>                                                
            <select name="statustransport">                                                        
                <option disabled selected>auswählen
                </option>                                                        
                <option value="Auftrag erhalten">Auftrag erhalten
                </option>
                <option value="In Bearbeitung">In Bearbeitung
                </option>                                                    
            </select>                                                
            <label >Transportstatus Details
            </label>                                                
            <label>
            </label>                                                        
            <input name="statustransport2" type="text" class="form-control">                                                        

            <label >Abweichungen
            </label>                                                

            <select name="statusabweichung" >                                                        
                <option disabled selected>auswählen
                </option>
                <option value="Diebstahl">Diebstahl
                </option>
                <option value="Beschädigte Waren">Beschädigte Waren
                </option>                                                    
            </select>                                                

            <label >Transportabweichung Details
            </label>                                                

            <label >
            </label>                                                        
            <input name="statusabweichung2" type="text" >                                                        

            <label class="col-sm-2 label-on-left">Rechnungsstatus
            </label>                                                

            <select name="rechnungsstatus" class="selectpicker" data-style="btn btn-primary btn-round" title="Single Select" data-size="7">                                                        
                <option disabled selected>auswählen
                </option>                                                        
                <option value="Rechnung offen">Rechnung offen
                </option>                                                        
                <option value="Rechnung bezahlt">Rechnung bezahlt
                </option>                                                    
            </select>                                                

            <label>Rechnungsstatus Details
            </label>                                                

            <label >
            </label>                                                        
            <input name="rechnungsstatus2" type="text">                                                        

            <br>
            <h6>Eingaben prüfen</h6>
            <hr>
            <input type="submit" value="eintragen">                                                            

        </form>

        Kommentar


        • #5
          Und bringe deine Datenbank in Ordnung siehe https://www.php.de/forum/webentwickl...97#post1545897

          Kommentar


          • #6
            Der Post kommt von der vorherigen Seite und übergibt die ID. Die vorhandenen Werte werden auch mit Echo angezeigt. Die Datenbank habe ich gestern Abend noch bearbeitet. Die Echo Befehle werden auch vernünftig angezeigt. Das Problem ist, dass das Update nicht durchgeführt wird. Ohne Fehlermeldung. Ich habe den PDO Fehlermodus an. Ich denke, dass die ID nicht richtig in den Befehl zum Updaten geladen wird. Ich komme da aber nicht weiter.

            Kommentar


            • #7
              Ich habe mal var_dump($transportid); nach
              if (isset($_GET['createstatus'])) { gemacht
              dort wird NULL ausgegeben. Also wird die Transportid nicht übergeben. Wie bekomme ich das hin, dass die ID in den isset Bereich kommt?. Wenn ich vor ausführen des Formulars die ID abfrage wird sie noch angezeigt

              Kommentar


              • #8
                Das Textfeld transportid ist disabled, und somit wird der Wert nicht gesendet.

                Kommentar


                • #9
                  Ist es möglich die Veränderung des Feldes wie bei Disabled zu verhindern und trotzdem den Wert weiterzugeben? Wird der Wert bei Hidden weitergegeben?

                  Kommentar


                  • #10
                    https://www.w3schools.com/tags/att_i...ype_hidden.asp
                    https://www.w3schools.com/tags/att_input_readonly.asp

                    Kommentar

                    Lädt...
                    X