@blackLazySwan

Как не повторять значения при UPDATE в базе данных?

на странице есть несколько полей формы с одинаковым именем name='protectMean[]'.
UPDATE срабатывает только если в самом последнем поле формы я меняю значение. и то ..в таком случае новое значение дублируется во всех полях таблицы БД где personSurname = $order_surname

Помогите пожалуйста. мне нужно чтобы значения в таблице БД обновлялись относительно измененных значений в форме.

$n=sizeof($_POST['protectMean']);
for($i=0;$i<$n;$i++)
{
    $qty=$_POST['protectMean'][$i];
    $update= $GLOBALS['pdo']->prepare
    ("UPDATE protect_means SET nameOfMeans = :value1 WHERE personSurname = :order_surname");
    $update->bindParam(':value1', $qty);
    $update->bindParam(':order_surname', $order_surname);
    $update->execute();
}
  • Вопрос задан
  • 118 просмотров
Решения вопроса 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Сделайте имена полей ввода уникальными.
Например 'name=ProtectMean_1234', где 1234 - уникальный ID записи в базе данных.

И потом разбор входящих данных:
foreach ($_POST as $k => $v)
{
    if (preg_match(/^ProtectMean_(\d+)$/, $k, $r))
    {
        $update= $GLOBALS['pdo']->prepare("UPDATE protect_means SET nameOfMeans=:value1 WHERE ID=:ID");
        $update->bindParam(':value1', $v);
        $update->bindParam(':ID', $r[1]);
        $update->execute();
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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