Maison  >  Questions et réponses  >  le corps du texte

Comment saisir des valeurs spécifiques dans les champs de saisie même si certains d'entre eux sont vides ?

Comment modifier une ou plusieurs valeurs de sélection ? Si j'entre une valeur, cela fonctionne. Pourtant, si je saisis deux valeurs dans les deux champs de saisie, cela ne fonctionne pas, affichant l'erreur suivante.

Erreur lors de la mise à jour de l'enregistrement : il y a une erreur dans votre vérification de syntaxe SQL ; Le manuel correspondant à la version de votre serveur MariaDB Ligne 1 Syntaxe utilisée près de 'nat = 'saf' WHERE id = '16''

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 Il y a quelques jours328

répondre à tous(1)je répondrai

  • P粉798010441

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

    Implémentation des commentaires de @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);
    }

    répondre
    0
  • Annulerrépondre