У меня есть форма внутри таблицы, которая динамически создает строки на основе количества записей в базе данных. Форма служит для обновления записей. Он работает в отдельном тестовом файле, который я создал для тестирования, но не тогда, когда я объединю его с фактическим файлом.
<form role="form" id="edit_form" class="form-inline" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'])?>?action=edit_menu" method="post"></form>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Price</th>
<th>Item 1</th>
<th>Item 2</th>
<th>Item 3</th>
<th>Item 4</th>
<th>Item 5</th>
<th>Item 6</th>
<th>Item 7</th>
<th>Item 8</th>
</tr>
</thead>
<tbody>
<?php
foreach($menu_items as $key => $value){
echo "
<tr>
<td>
<input type='text' name='name".$count."' form='edit_form' value=".$value["name"].">
</td>
<td>
<input type='text' name='price".$count."' form='edit_form' value=".$value["price"].">
</td>
<td>
<select form='edit_form' name='item1".$count."'>
<option>".$value["item1"]."</option>";
foreach ($db_items as $keys => $values) {
echo "<option value=".$values["name"].">".$values["name"]."</option>";
}
echo "
</select>
</td>
<td>
<select form='edit_form' name='item2".$count."'>
<option>".$value["item2"]."</option>";
foreach ($db_items as $keys => $values) {
echo "<option value=".$values["name"].">".$values["name"]."</option>";
}
echo "
</select>
</td>
<td>
<select form='edit_form' name='item3".$count."'>
<option>".$value["item3"]."</option>";
foreach ($db_items as $keys => $values) {
echo "<option value=".$values["name"].">".$values["name"]."</option>";
}
echo "
</select>
</td>
<td>
<select form='edit_form' name='item4".$count."'>
<option>".$value["item4"]."</option>";
foreach ($db_items as $keys => $values) {
echo "<option value=".$values["name"].">".$values["name"]."</option>";
}
echo "
</select>
</td>
<td>
<select form='edit_form' name='item5".$count."'>
<option>".$value["item5"]."</option>";
foreach ($db_items as $keys => $values) {
echo "<option value=".$values["name"].">".$values["name"]."</option>";
}
echo "
</select>
</td>
<td>
<select form='edit_form' name='item6".$count."'>
<option>".$value["item6"]."</option>";
foreach ($db_items as $keys => $values) {
echo "<option value=".$values["name"].">".$values["name"]."</option>";
}
echo "
</select>
</td>
<td>
<select form='edit_form' name='item7".$count."'>
<option>".$value["item7"]."</option>";
foreach ($db_items as $keys => $values) {
echo "<option value=".$values["name"].">".$values["name"]."</option>";
}
echo "
</select>
</td>
<td>
<select form='edit_form' name='item8".$count."'>
<option>".$value["item8"]."</option>";
foreach ($db_items as $keys => $values) {
echo "<option value=".$values["name"].">".$values["name"]."</option>";
}
echo "
</select>
</td>
<td>
<input type='hidden' name='id".$count."' form='edit_form' value=".$value["id"].">
<input type='submit' class='btn btn-xs green-haze' name='count".$count."' form='edit_form' value='Edit'>
</td>
</tr>";
if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_GET['action'] == 'edit_menu') {
if(isset($_POST['count'.$count.''])){
$update_menu = "UPDATE `menu`
SET `name`= '".$_POST["name".$count]."',`price`='".$_POST["price".$count]."',`item1`='".$_POST["item1".$count]."',`item2`='".$_POST["item2".$count]."',`item3`='".$_POST["item3".$count]."',`item4`='".$_POST["item4".$count]."',`item5`='".$_POST["item5".$count]."',`item6`='".$_POST["item6".$count]."',`item7`='".$_POST["item7".$count]."',`item8`='".$_POST["item8".$count]."'
WHERE `id`='".$_POST["id".$count]."'";
if ($conn->query($update_menu)) {
header('Location: '.$_SERVER['PHP_SELF']);
die;
}
}
}
$count++;
}
?>
</tbody>
</table>
Вот таблица вместе с формой, которую я создал в ней. Нет проблем с подключением к базе данных (все остальные формы работают нормально).
Ошибок нет. $ conn-> query () возвращает true и выполняет любое утверждение, которое я помещаю внутри if () с ним, но при этом он не обновляет базу данных.
Я могу поделиться остальной частью скрипта, если это поможет.
Благодарю вас
У меня есть форма внутри таблицы, которая динамически создает строки на основе количества записей в базе данных. Форма служит для обновления записей. Он работает в отдельном тестовом файле, который я создал для тестирования, но не тогда, когда я объединю его с фактическим файлом.
<form role="form" id="edit_form" class="form-inline" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'])?>?action=edit_menu" method="post"></form>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Price</th>
<th>Item 1</th>
<th>Item 2</th>
<th>Item 3</th>
<th>Item 4</th>
<th>Item 5</th>
<th>Item 6</th>
<th>Item 7</th>
<th>Item 8</th>
</tr>
</thead>
<tbody>
<?php
foreach($menu_items as $key => $value){
echo "
<tr>
<td>
<input type='text' name='name".$count."' form='edit_form' value=".$value["name"].">
</td>
<td>
<input type='text' name='price".$count."' form='edit_form' value=".$value["price"].">
</td>
<td>
<select form='edit_form' name='item1".$count."'>
<option>".$value["item1"]."</option>";
foreach ($db_items as $keys => $values) {
echo "<option value=".$values["name"].">".$values["name"]."</option>";
}
echo "
</select>
</td>
<td>
<select form='edit_form' name='item2".$count."'>
<option>".$value["item2"]."</option>";
foreach ($db_items as $keys => $values) {
echo "<option value=".$values["name"].">".$values["name"]."</option>";
}
echo "
</select>
</td>
<td>
<select form='edit_form' name='item3".$count."'>
<option>".$value["item3"]."</option>";
foreach ($db_items as $keys => $values) {
echo "<option value=".$values["name"].">".$values["name"]."</option>";
}
echo "
</select>
</td>
<td>
<select form='edit_form' name='item4".$count."'>
<option>".$value["item4"]."</option>";
foreach ($db_items as $keys => $values) {
echo "<option value=".$values["name"].">".$values["name"]."</option>";
}
echo "
</select>
</td>
<td>
<select form='edit_form' name='item5".$count."'>
<option>".$value["item5"]."</option>";
foreach ($db_items as $keys => $values) {
echo "<option value=".$values["name"].">".$values["name"]."</option>";
}
echo "
</select>
</td>
<td>
<select form='edit_form' name='item6".$count."'>
<option>".$value["item6"]."</option>";
foreach ($db_items as $keys => $values) {
echo "<option value=".$values["name"].">".$values["name"]."</option>";
}
echo "
</select>
</td>
<td>
<select form='edit_form' name='item7".$count."'>
<option>".$value["item7"]."</option>";
foreach ($db_items as $keys => $values) {
echo "<option value=".$values["name"].">".$values["name"]."</option>";
}
echo "
</select>
</td>
<td>
<select form='edit_form' name='item8".$count."'>
<option>".$value["item8"]."</option>";
foreach ($db_items as $keys => $values) {
echo "<option value=".$values["name"].">".$values["name"]."</option>";
}
echo "
</select>
</td>
<td>
<input type='hidden' name='id".$count."' form='edit_form' value=".$value["id"].">
<input type='submit' class='btn btn-xs green-haze' name='count".$count."' form='edit_form' value='Edit'>
</td>
</tr>";
if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_GET['action'] == 'edit_menu') {
if(isset($_POST['count'.$count.''])){
$update_menu = "UPDATE `menu`
SET `name`= '".$_POST["name".$count]."',`price`='".$_POST["price".$count]."',`item1`='".$_POST["item1".$count]."',`item2`='".$_POST["item2".$count]."',`item3`='".$_POST["item3".$count]."',`item4`='".$_POST["item4".$count]."',`item5`='".$_POST["item5".$count]."',`item6`='".$_POST["item6".$count]."',`item7`='".$_POST["item7".$count]."',`item8`='".$_POST["item8".$count]."'
WHERE `id`='".$_POST["id".$count]."'";
if ($conn->query($update_menu)) {
header('Location: '.$_SERVER['PHP_SELF']);
die;
}
}
}
$count++;
}
?>
</tbody>
</table>
Вот таблица вместе с формой, которую я создал в ней. Нет проблем с подключением к базе данных (все остальные формы работают нормально).
Ошибок нет. $ conn-> query () возвращает true и выполняет любое утверждение, которое я помещаю внутри if () с ним, но при этом он не обновляет базу данных.
Я могу поделиться остальной частью скрипта, если это поможет.
Благодарю вас
00PHP, MySQL, базы данных,