Я пытаюсь сделать так, чтобы при установленном флажке он помещал сегодняшнюю дату в базу данных, я пытался использовать временную метку, но она ставит ее во все пробелы в столбце, я новичок в php Код, который я сделал, был таким:
<?php
if (isset($_POST['Abate'])){
$Abate = "Sim";
$data=time();
$DiaAbate= date("Y/m/d", $data);
}
else{
$Abate = "Nao";
$DiaAbate = "";
}
?>
«но он ставит его во все пробелы в столбце» - что вы имеете в виду?
Код, который вы показали, просто подготавливает некоторые данные, он не показывает нам, где вы на самом деле ВСТАВЛЯЕТЕ или ОБНОВЛЯЕТЕ записи.
Извините, это мой первый раз, когда я использую stackoverflow. Я не знал, как работают комментарии, часть кода, где вы вставляете данные в базу данных, выглядит так: (мне пришлось сократить код из-за ограничения символов)
$Уменьшить = $_POST['Уменьшить']; $DiaAbate = $_POST['DiaAbate']; $query = "ВСТАВИТЬ В ПК (Abate,DiaAbate) ЗНАЧЕНИЯ ('$Abate','$DiaAbate')"; $query_run = mysqli_query($con, $query); if ($query_run) { $_SESSION['status'] = "Вставлено успешно"; header("Расположение: indexx.php"); } else { $_SESSION['status'] = "Не вставлено"; header("Расположение: indexx.php"); }
Вы не включили структуру своей таблицы (оператор CREATE TABLE), поэтому я предположил, что у вас есть столбец DATE для хранения $DiaAbate. Я также предположил, что представленная дата находится в формате 22/11/2022. Если вы используете другой формат для значения даты POSTed, вам нужно будет изменить строку формата, переданную в DateTime::createFromFormat().
Ваш текущий код уязвим для SQL Injection , поскольку вы комбинируете свои статические строки с пользовательским вводом без какой-либо проверки. В простом примере ниже используется подготовленный оператор для запроса на вставку -
if (isset($_POST['Abate'])){
$Abate = 'Sim';
// create a date from the posted date string adn format it
// see https://www.php.net/manual/en/datetime.createfromformat.php
$DiaAbate = DateTime::createFromFormat('d/m/Y', $_POST['DiaAbate'])->format('Y-m-d');
} else {
$Abate = 'Nao';
$DiaAbate = null;
}
$query = 'INSERT INTO pc (Abate, DiaAbate) VALUES (?, ?)';
$query_run = mysqli_execute_query($con, $query, [$Abate, $DiaAbate]);
if ($query_run) {
$_SESSION['status'] = 'Inserted Succesfully';
header('Location: indexx.php');
} else {
$_SESSION['status'] = 'Not Inserted';
header('Location: indexx.php');
}
Поделитесь снимком экрана для вставленной записи. Это поможет решить проблему.