Heim  >  Fragen und Antworten  >  Hauptteil

Wie kann man bestimmte Werte in Eingabefelder eingeben, auch wenn einige davon leer sind?

Wie ändere ich einen oder mehrere Auswahlwerte? Wenn ich einen Wert eingebe funktioniert es. Wenn ich jedoch in beide Eingabefelder zwei Werte eingebe, funktioniert es nicht und zeigt die folgende Fehlermeldung an.

Fehler beim Aktualisieren des Datensatzes: Es liegt ein Fehler in Ihrer SQL-Syntaxprüfung vor Das Handbuch, das Ihrer MariaDB-Serverversion entspricht Zeile 1 Syntax, die in der Nähe von 'nat = 'saf' WHERE id = '16'' verwendet wird

if (isset($_POST['modifica'])) {
    $id = $_POST['id'];

    $semaphore = false;
    $sql = "UPDATE users SET ";
    $fields = array('nume', 'nat', 'email', 'telefon');
    foreach ($fields as $field) {
        if (isset($_POST[$field]) and !empty($_POST[$field])) {
            $var = ($_POST[$field]);
            $sql .= $field." = '$var'";
            $semaphore = true;
        }
    }

    if ($semaphore) {
        $sql .= " WHERE id = '$id'";
        ($sql);
    }
    
    if ($conn->query($sql) === true) {
        echo "Record updated successfully";
    } else {
        echo "Error updating record: ".$conn->error;
    }

    $conn->close();
}

P粉418854048P粉418854048187 Tage vor327

Antworte allen(1)Ich werde antworten

  • P粉798010441

    P粉7980104412024-03-21 00:02:31

    @m-eriksson 评论的实施方法:

    $sql = "UPDATE users SET nume = :nume, nat = :nat, email = :email, telefon = :telefon";
    
    $fields = array('nume', 'nat', 'email', 'telefon');
    
    if(count($fields) > 0 ){ 
        $this->update($sql, $fields, $con)
        $semaphore = true;
    }
    
    public function update ($sql, $fields, $con)
    {
        $update = $con->prepare($query);
        return $update->execute($fields);
    }

    Antwort
    0
  • StornierenAntwort