@miniven

Как обновить несколько значений в БД?

Я с php вообще не дружу, но вышла такая ситуация, что нужно быстро провернуть такую тему:
Есть таблица с названиями заголовков, их размерами и цветами.
Я хочу каждый из них поменять через input.
Для первого заголовка:
<input type="text" name="mainTitle" placeholder="Главный заголовок" class="form__input" value="<?php echo $titles[1]['title_name']; ?>">
						<input type="text" name="mainTitleSize" class="form__input form__input_size" value="<?php echo $titles[1]['title_size']; ?>">
						<span>px</span>
						<input type="text" name="mainTitleColor" class="form__input form__input_colorpicker" value="<?php echo $titles[1]['title_color']; ?>">


Для второго:
<input type="text" name="highTitle" value="<?php echo $titles[0]['title_name']; ?>" placeholder="Самый верхний заголовок" class="form__input">
						<input type="text" name="highTitleSize" value="<?php echo $titles[0]['title_size']; ?>" class="form__input form__input_size">
						<span>px</span>
						<input type="text" name="highTitleColor" value="<?php echo $titles[0]['title_color']; ?>" class="form__input form__input_colorpicker">


Вот примерно так я это пытаюсь сделать. Подскажите, что нужно сделать, чтобы при отправке формы значения в таблице менялись на введенные в input'ы? Первый меняется без проблем, а второй не хочет.

<?php

require '../app/start.php';
require '../app/db.php';

if (!empty($_POST)) {
	$mainTitle      = $_POST['mainTitle'];
	$mainTitleSize  = $_POST['mainTitleSize'];
	$mainTitleColor = $_POST['mainTitleColor'];

	$highTitle      = $_POST['highTitle'];
	$highTitleSize  = $_POST['highTitleSize'];
	$highTitleColor = $_POST['highTitleColor'];

	$insert = $db->prepare(
		"UPDATE titles SET 
		title_name = '$mainTitle', 
		title_size = '$mainTitleSize', 
		title_color = '$mainTitleColor'
		WHERE id = 1;

		UPDATE titles SET 
		title_name = '$highTitle', 
		title_size = '$highTitleSize', 
		title_color = '$highTitleColor',
		WHERE id = 0"
	);

	$insert->execute([
		'title_name' => $mainTitle,
		'title_size' => $mainTitleSize,
		'title_color' => $mainTitleColor,

		'title_name' => $highTitle,
		'title_size' => $highTitleSize,
		'title_color' => $highTitleColor,
	]);

	header('Location: ' . BASE_URL . '/admin/admin.php');
}

require VIEW_ROOT . '/admin/view_admin.php';
  • Вопрос задан
  • 191 просмотр
Решения вопроса 1
BuriK666
@BuriK666
Компьютерный псих
Сделайте два запроса.
$insert = $db->prepare(
    'UPDATE titles SET 
    title_name = :titleName, 
    title_size = :titleSize,
    title_color = :titleColor
    WHERE id = :id');

$insert->execute([
  ':titleName' => $mainTitle,
  ':titleSize' => $mainTitleSize,
  ':titleColor' => $mainTitleColor,
  ':id' => 1
]);
$insert->execute([
  ':titleName' => $highTitle,
  ':titleSize' => $highTitleSize,
  ':titleColor' => $highTitleColor,
  ':id' => 0
]);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы