#php #mysql
#php #mysql
Вопрос:
пожалуйста, помогите мне понять, почему этот запрос на обновление не обновит мою запись в базе данных? я знаю, что есть куча похожих вопросов, и я их тоже читал, но все равно я не знал, что не так…
вот как я ввожу:
<form class="mx-3 my-3" role="form" method="post" action="buka_akun.php">
<div class="form-group">
<label for="InputUserName" class="font-weight-bold">Username</label>
<input type="text" class="form-control" name="inputUserName" id="inputUserName" aria-describedby="InputUserNameHelp" placeholder="Masukkan username Anda...">
</div>
<button type="submit" class="btn btn-primary border-0 mr-2" name="buttonBukaAkun" style="background-color: rgba(18, 137, 167,1.0);">Buka Absen</button>
<button type="submit" class="btn btn-primary border-0 mr-2" name="buttonTutupAkun" style="background-color: rgba(18, 137, 167,1.0);">Tutup Absen</button>
</form>
мой php:
<?php
include("header.php");
include("db_connect.php");
$flag = 0;
if(isset($_POST['buttonBukaAkun'])){
$username = $_POST['inputUserName'];
$query_buka_akun = "UPDATE 'user_login' SET 'activate' = '1' WHERE 'username' = '$username'";
$result_buka_akun = mysqli_query($connection, $query_buka_akun);
if($result_buka_akun){
$flag = 1;
}
}
if(isset($_POST['buttonTutupAkun'])){
$username = $_POST['inputUserName'];
$query_tutup_akun = "UPDATE 'user_login' SET 'activate' = '0' WHERE 'username' = '$username'";
$result_tutup_akun = mysqli_query($connection, $query_tutup_akun);
if($result_tutup_akun){
$flag = 1;
}
}
?>
таблица базы данных:
CREATE TABLE user_login(
id_login int(255) PRIMARY KEY AUTO_INCREMENT,
username varchar(255),
password varchar(255),
level varchar(255),
activate int(2));
Ответ №1:
Для отправки замените <button>
тег на <input type='submit'>
.
<input type="submit" class="btn btn-primary border-0 mr-2" name="buttonBukaAkun" style="background-color: rgba(18, 137, 167,1.0);" value="Buka Absen" />
И не заключайте имя столбца таблицы в кавычки.
$query_buka_akun = "UPDATE user_login SET activate = '1' WHERE username = '$username'";
Ответ №2:
Сначала вы должны экранировать свои данные POST.
Зачем использовать ‘ в вашем заявлении?
"UPDATE 'user_login' SET 'activate' = '1' WHERE 'username' = '$username'";
должно выглядеть следующим образом
'UPDATE `user_login` SET `activate` = '1' WHERE `username` = '.$username;