Обновление таблицы, установка соответствий - MySQL

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! прошу помощи в разрешении следующей задачи: есть у меня 2 таблицы shop и price. в обоих таблицах имеются поля art и cena. в таблице shop содержится большое колличество позиций, которое постоянно увеличивается (в данный момент порядка 5000 строк). в таблица price ежедневно очищается и в нее вносится порядка 1-2 тыс. позиций. вопрос вот в чем: как при обновлении таблицы price обновить поле cena в таблице shop согласно полю art, т.е. поле art является "привязкой".? изначально пробовал средствами php сделать:
$z=mysql_query("SELECT * FROM `price`");
while ($res = mysql_fetch_array($z)) {
    mysql_query("UPDATE `shop` SET `cena`='$res[cena]' WHERE `art`='$res[art]'");
}
но из-за большого колличества сверяемых позиций сервер просто выдавал ошибку. можно ли как то это реализовать средствами mysql?

Решение задачи: «Обновление таблицы, установка соответствий»

textual
Листинг программы
$z=mysql_query("SELECT * FROM `price`");
while ($res = mysql_fetch_array($z)) {
    mysql_query("UPDATE `shop` SET `cena`='$res[cena]' WHERE `art`='$res[art]'");
}

Объяснение кода листинга программы

  1. $z=mysql_query(SELECT * FROMprice`); - запрос на выборку всех данных из таблицыprice`
  2. while ($res = mysql_fetch_array($z)) { - цикл, который будет выполняться, пока есть результаты запроса
  3. mysql_query(UPDATEshopSETcena='$res[cena]' WHEREart='$res[art]'); - запрос на обновление данных в таблице shop, где значение cena устанавливается равным значению cena из таблицы price, а условие WHERE используется для указания соответствия по полю art
  4. } - закрытие цикла
  5. Вывод данных не предусмотрен в данном коде

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы