RFpro.ru: Программирование на PHP

  Все выпуски  

RFpro.ru: Программирование на PHP


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты данной рассылки

vladisslav
Статус: 8-й класс
Рейтинг: 1325
∙ повысить рейтинг »
Жерар
Статус: Специалист
Рейтинг: 1171
∙ повысить рейтинг »
amnick
Статус: Профессионал
Рейтинг: 712
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / PHP

Номер выпуска:1229
Дата выхода:08.04.2011, 07:30
Администратор рассылки:Устинов С.Е. (Профессионал)
Подписчиков / экспертов:297 / 144
Вопросов / ответов:1 / 1

Вопрос № 182696: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Мне нужно изменить (обновить) данные в двух полях в одной таблице базы данных MySql. Причина в том, что старые данные не были удалены. В данный момент удалять эти данные пол...



Вопрос № 182696:

Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
Мне нужно изменить (обновить) данные в двух полях в одной таблице базы данных MySql. Причина в том, что старые данные не были удалены. В данный момент удалять эти данные полностью нет смысла, потому что идет обновление данных и к старым данным добавляются новые. Новые данные мне удается получить скриптом. Остается только внести их в нужные поля одной таблицы. Желательно делать это сразу моим же скриптом, после получения значения.
Исходные данные (многие исходные данные представлены в виде переменных. В таком виде их и нужно использовать):
1. База данных - $db;
2. Номер категории - $min_categoryID;
3. Количество записей - $next_links, они соответствуют разным номерам категорий и могут отличаться друг от друга;
Задача: Нужно обновить данные в таблице: categories в полях: products_count и products_count_admin, записав туда одинаковые для каждой строки данные $next_links, где поле cat egoryID соответствует $min_categoryID.
Продолжите или исправьте эту запись: $result = mysql_query(UPDATE categories SET product_count, product_count_admin и т.д. Дальше я просто не понял что писать. Мне нужна просто грамотно написанная строка запроса.
И второй момент: мне нужно посчитать сколько общее количество записей при сложении всех $next_links. Мне нужно сложить количество записей - $next_links во всех категориях - $min_categoryID и отобразить полученное число с помощью echo. Я их получаю циклом:
$min_categoryID = $min_categoryID + 1;
while (($min_categoryID) <= $max_categoryID)
{
// Здесь тело цикла, где в каждой категории я получаю количество записей - $next_links.
$min_categoryID++;
}
Так как практически здесь 2 вопроса, соответственно и сумма оплаты немного выше.
Заранее благодарю за ответ.

Отправлен: 02.04.2011, 13:39
Вопрос задал: rock (Посетитель)
Всего ответов: 1
Страница вопроса »


Отвечает Жерар (Специалист) :
Здравствуйте, rock!

Насколько я понял, вам нужно выполнить две операции для таблицы categories:

1) Для записи с categoryID = $min_categoryID обновить поля products_count и products_count_admin, записав туда значение $next_links.

2) Для записей с $min_categoryID < categoryID <= $max_categoryID найти сумму значений поля products_count, в которое заносились $next_links.

Для первой операции выполняем следующий запрос:
Код:

$result = mysql_query("UPDATE categories SET product_count = '$next_links', product_count_admin = '$next_links' WHERE categoryID = '$min_categoryID' & quot;);

Для второй можно вместо цикла использовать запрос с агрегатной функцией SUM:
Код:

list($sum) = mysql_fetch_array(mysql_query("SELECT SUM(products_count) FROM categories WHERE categoryID>'$min_categoryID' AND categoryID<='$max_categoryID' "), MYSQL_NUM);
echo $sum;

Если я что-то понял неправильно, уточните в минифоруме.

Ответ отправил: Жерар (Специалист)
Ответ отправлен: 03.04.2011, 05:39
Номер ответа: 266513
Россия, Томск
Тел.: 8-923-411-36-58

Оценка ответа: 5
Комментарий к оценке:
Большое спасибо Жерару! Он меня выручает уже не первый раз. Всем рекомендую обращаться к нему за помощью.

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 266513 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:


  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.



    В избранное