У меня есть HTML с текстовым полем и полем выбора. Я хочу, чтобы пользователь выбрал фиксированный номер из раскрывающегося списка, который выбирает номер из моей базы данных. Затем я хочу, чтобы пользователь ввел новую ежемесячную арендную плату в текстовое поле. Как только пользователь нажимает кнопку отправки, я хочу, чтобы он обновлял ежемесячную арендную плату базы данных в зависимости от того, какой номер квартиры был выбран. Я могу получить плоский номер из базы данных, но не могу получить информацию из текстового поля и изменить ее в базе данных.
Вот мой код
Changeback.php (серверная часть)
<?php
include "connect.php";
if(isset($_POST['MonthlyRent'])){
$MonthlyRent = $_POST['MonthlyRent'];
$FlatCode = $_POST['FlatCode'];
$query = "UPDATE MonthlyRent set MonthlyRent = ($MonthlyRent) where FlatCode = ($FlatCode) ";
mysqli_query($con, $query) or die ("Invalid query");
$numrows = mysqli_affected_rows($con);
echo "number of affected rows is " . $numrows;
exit( print_r( $_POST ) );
mysqli_close($con);
}
?>
Change.php (интерфейс)
<html><head><title>Connect to Database</title></head><body>
<font size="4"> Enter owner details</font><br><br>
<form action="changeback.php" method="post" >
Monthly Rent <input type="text" name="MonthlyRent">
Flat Code <select name="FlatCode">
<?php
$con = mysqli_connect("localhost", "root", "root") or die ("No connection");
mysqli_select_db($con , "flat") or die ("db will not open");
$query = "SELECT distinct FlatCode from FLAT";
$result = mysqli_query($con, $query) or die("Invalid query");
while($rows = mysqli_fetch_array($result)) {
echo "<option value=\"" . $rows[0] . "\">" . $rows[0] . "</option>";
}
echo "</select>";
mysqli_close($con);
?>
<input type="submit" value="Submit Value">
</form></body></html>
2 ответа
Проблема в вашем операторе UPDATE, где вы (1) поместили имя столбца MonthlyRent
там, где должно было быть имя таблицы FLAT
, и (2) не заключили в кавычки значение плоского кода.
Изменить:
$query = "UPDATE MonthlyRent set MonthlyRent = ($MonthlyRent) where FlatCode = ($FlatCode) ";
Кому:
// Always escape user input to reduce risk of errors and security holes
$escapedMonthlyRent = mysqli_real_escape_string($con, $MonthlyRent);
$escapedFlatCode = mysqli_real_escape_string($con, $FlatCode);
$query = "update FLAT set MonthlyRent = '$escapedMonthlyRent' "
."where FlatCode = '$escapedFlatCode'";
Это не ответ, просто длинный комментарий.
Если у вас есть время (пара часов), я настоятельно рекомендую вам зайти в PHPAcademy и пройти некоторые из их бесплатных руководств.
Вот с чего можно начать:
https://phpacademy.org/videos/php-and-mysql-with-mysqli
Его Register & Login
руководство просто необходимо, если вы хотите, чтобы люди заходили на ваш сайт.
Кроме того, в NewBoston есть несколько отличных (бесплатных) руководств, которые вы можете просмотреть.
https://www.thenewboston.com/videos.php?cat=87
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.