За последние 24 часа нас посетили 18596 программистов и 1622 робота. Сейчас ищут 1156 программистов ...

как изменить цену на N в базе данных у всех выбранных ID

Тема в разделе "PHP и базы данных", создана пользователем ufaclub, 13 авг 2023.

  1. ufaclub

    ufaclub Активный пользователь

    С нами с:
    29 авг 2011
    Сообщения:
    55
    Симпатии:
    0
    есть таблица price

    в ней структура id,price


    подскажите как обновить значение позиции цены (price) на всю выборку а не на один ID


    вот так обновляю цену на один ID
    PHP:
    1. $query = "UPDATE price SET price='".$price."', status='".$status."',  price_ot='".$price_ot."', dataprice='".$dataprice."'  WHERE id=".$_GET['id']; mysql_query ( $query );
    а мне надо отправить скрипт обновление

    выборку
    PHP:
    1. $setid="1,2,3,4,5,6,8,9,10";
    операция (сложение или вычитания)
    (к примеру +)
    PHP:
    1. $znak="+";
    число
    PHP:
    1. $chs="10";


    и чтобы скрипт обновил все значения price на + 10


    т.е было
    id price
    1 200
    2 250
    3 400

    а стало


    id price
    1 210
    2 260
    3 410

    помогите пожалуйста сформировать правильный запрос код к SQL
     
  2. Slava Rozhnev

    Slava Rozhnev Новичок

    С нами с:
    6 сен 2021
    Сообщения:
    87
    Симпатии:
    26
    Адрес:
    https://phpize.online
    С точки зрения SQL запрос должен быть таким
    Код (Text):
    1. update p set price = price + 10 where id in (1,2,4);
    https://sqlize.online/s/hR
     
  3. ufaclub

    ufaclub Активный пользователь

    С нами с:
    29 авг 2011
    Сообщения:
    55
    Симпатии:
    0
    PHP:
    1.   $query = "UPDATE price SET price + 10 WHERE id IN(1304,1305,1306)";
    вот так сделал
    как было так и осталось

    PHP:
    1.  
    2. id price
    3. 1304 73
    4. 1305 101
    5. 1306 265
    а должно быть вот так
    PHP:
    1.  
    2. id price
    3. 1304 83
    4. 1305 111
    5. 1306 275
     
  4. Slava Rozhnev

    Slava Rozhnev Новичок

    С нами с:
    6 сен 2021
    Сообщения:
    87
    Симпатии:
    26
    Адрес:
    https://phpize.online
    Посмотрите внимательно! Вы ошиблись в запросе
    $query = "UPDATE price SET price = price + 10 WHERE id IN(1304,1305,1306)";
     
  5. ufaclub

    ufaclub Активный пользователь

    С нами с:
    29 авг 2011
    Сообщения:
    55
    Симпатии:
    0
    спасибо! теперь да работает!

    PHP:
    1.   $query = "UPDATE price SET price=price ".$znak." '".$chs."', dataprice='".$dataprice."' WHERE id IN(".$setid.")";
    2.                      
     
  6. Slava Rozhnev

    Slava Rozhnev Новичок

    С нами с:
    6 сен 2021
    Сообщения:
    87
    Симпатии:
    26
    Адрес:
    https://phpize.online
    Не забудьте обработать все переменные в запросе чтобы избежать SQL-инъекций