Буду весьма благодарен за помощь!
Спустя 2 минуты, 53 секунды (13.09.2012 - 22:24) Shuriken написал(а):
А так не канает:
update table
set id=$a, rate=$b...
Спустя 6 минут, 8 секунд (13.09.2012 - 22:30) neopk написал(а):
Цитата (Shuriken @ 13.09.2012 - 19:24) |
А так не канает:update table |
Так 12 записей в таблице, придется делать 12 запросов. Как-то не очень вариант
Спустя 4 минуты, 48 секунд (13.09.2012 - 22:35) Shuriken написал(а):
Цитата (neopk @ 13.09.2012 - 19:30) |
Так 12 записей в таблице, придется делать 12 запросов. Как-то не очень вариант |
А если в цикл загнать?
Спустя 31 минута, 44 секунды (13.09.2012 - 23:07) neopk написал(а):
Цитата (Shuriken @ 13.09.2012 - 19:35) | ||
А если в цикл загнать? |
Ну конечно это вариант, но хотелось бы решить это в меньшее кол-во запросов к БД
Спустя 2 часа, 23 минуты, 40 секунд (14.09.2012 - 01:30) Invis1ble написал(а):
neopk
для начала уточни, как именно тебе нужно их обновить, на примере.
для начала уточни, как именно тебе нужно их обновить, на примере.
Спустя 8 часов, 53 минуты, 22 секунды (14.09.2012 - 10:24) neopk написал(а):
Цитата (Invis1ble @ 13.09.2012 - 22:30) |
neopk для начала уточни, как именно тебе нужно их обновить, на примере. |
Ну вот так я обновляю 1 строку:
$result = mysql_query ("UPDATE requirements_table SET rate='{$_POST['rate_1']}', level='{$_POST['lev_1']}', summ_1='{$_POST['summ_1_1']}', summ_2='{$_POST['summ_2_1']}', slave='{$_POST['slave_1']}' WHERE id='1' ");
А вот как-нибудь так хотелось бы обновить всю таблицу:
INSERT INTO `table` (id, field) VALUES (1, 1), (2, 12), (3, 0.5) ON DUPLICATE KEY UPDATE field = VALUES(field)
Спустя 12 минут, 16 секунд (14.09.2012 - 10:36) Shuriken написал(а):
Ты опиши откуда у тебя берутся данные, которые ты передаёшь в массив POST
Спустя 4 минуты, 21 секунда (14.09.2012 - 10:40) Invis1ble написал(а):
neopk
если тебе просто нужно обновить все записи независимо от каких-либо условий, то смотри здесь.
Если есть какое-то условие, то опиши его, потому что я так и не понял толком.
если тебе просто нужно обновить все записи независимо от каких-либо условий, то смотри здесь.
Если есть какое-то условие, то опиши его, потому что я так и не понял толком.
Спустя 12 минут, 4 секунды (14.09.2012 - 10:52) neopk написал(а):
Цитата (Shuriken @ 14.09.2012 - 07:36) |
Ты опиши откуда у тебя берутся данные, которые ты передаёшь в массив POST |
Данные передаются из формы на другой странице
Спустя 2 минуты, 30 секунд (14.09.2012 - 10:55) neopk написал(а):
Цитата (Invis1ble @ 14.09.2012 - 07:40) |
neopk если тебе просто нужно обновить все записи независимо от каких-либо условий, то смотри здесь. Если есть какое-то условие, то опиши его, потому что я так и не понял толком. |
Ваша ссылка ведет на пост Shuriken, но я же так и сделал изначально. Мне нужно обновить все в ОДИН, или, хотя бы, менее 12 запросов к БД (12 строк надо обновить).
Спустя 3 минуты, 59 секунд (14.09.2012 - 10:59) Shuriken написал(а):
Цитата (neopk @ 14.09.2012 - 07:52) |
Данные передаются из формы на другой странице |
Ну это понятно. Нужна конкретика, чтоб тебе подсказать как поступить. Какие данные передаются и как они пишутся в базу?
Спустя 6 минут, 11 секунд (14.09.2012 - 11:05) Invis1ble написал(а):
neopk
Цитата |
Ваша ссылка ведет на пост Shuriken, |
все правильно, я не ошибся.
Цитата |
Мне нужно обновить все в ОДИН, или, хотя бы, менее 12 запросов к БД (12 строк надо обновить). |
простым update без where ты и обновишь все 12 строк одним запросом.
Спустя 5 минут, 22 секунды (14.09.2012 - 11:10) Shuriken написал(а):
Цитата (Invis1ble @ 14.09.2012 - 08:05) |
простым update без where ты и обновишь все 12 строк одним запросом. |
Я так понял эти 12 записей разные, одним запросом они станут одинаковые
Спустя 5 минут, 30 секунд (14.09.2012 - 11:16) Invis1ble написал(а):
ясен пень одинаковые. ТС же молчит и не говорит, КАК ИМЕННО он хочет обновить данные. Запрос один? Один. Все строки обновятся? Все. Можно считать, что ответ дан?
Спустя 8 минут, 42 секунды (14.09.2012 - 11:25) neopk написал(а):
Цитата (Invis1ble @ 14.09.2012 - 08:16) |
ясен пень одинаковые. ТС же молчит и не говорит, КАК ИМЕННО он хочет обновить данные. Запрос один? Один. Все строки обновятся? Все. Можно считать, что ответ дан? |
Извиняюсь, ели не правильно сформулировал задачу. 12 строк разных, отличаются полем id (от 1 до 12, эти строки уже созданы в БД).
Надо обновить каждую строку в соответствии со значением переменных.
Переменные такие:
$_POST['rate_1'] ... $_POST['rate_12'];
$_POST['lev_1'] ... $_POST['lev_12'];
$_POST['summ_1_1'] ... $_POST['summ_1_12'];
$_POST['summ_2_1'] ... $_POST['summ_2_12'];
$_POST['slave_1'] ... $_POST['slave_12'];
Имя переменной после _ совпадает с полем id в бд, в той строке, которую нужно обновить данными переменными
Спустя 2 минуты, 48 секунд (14.09.2012 - 11:27) Shuriken написал(а):
Циклом сделай
Спустя 8 минут, 9 секунд (14.09.2012 - 11:36) Invis1ble написал(а):
UPDATE `table`
SET
`field` = CASE `id`
WHEN 1 THEN 'val1'
WHEN 2 THEN 'val2'
...
END
Спустя 1 минута, 3 секунды (14.09.2012 - 11:37) neopk написал(а):
Цитата (Shuriken @ 14.09.2012 - 08:27) |
Циклом сделай |
Ну хорошо, я сделал циклом, при попытке открыть страницу долго грузит и пишет
502 Bad Gateway, не понимаю в чем проблема.
for ($count = 1; $count<=12; ++$count) {
$result.$count = mysql_query ("UPDATE requirements_table SET rate='{$_POST['rate_.$count']}', lev='{$_POST['lev_.$count']}', summ_1='{$_POST['summ_1_.$count']}', summ_2='{$_POST['summ_2_.$count']}', slave='{$_POST['slave_.$count']}' WHERE id=$count ");
}
Спустя 11 минут, 39 секунд (14.09.2012 - 11:48) Shuriken написал(а):
Исправь
$_POST["rate_".$count]
Спустя 12 минут, 23 секунды (14.09.2012 - 12:01) neopk написал(а):
Та же ошибка
for ($count = 1; $count<=12; ++$count) {
$result.$count = mysql_query ("UPDATE requirements_table SET rate='{$_POST["rate_".$count]}', lev='{$_POST["lev_".$count]}', summ_1='{$_POST["summ_1_".$count]}', summ_2='{$_POST["summ_2_".$count]}', slave='{$_POST["slave_".$count]}' WHERE id=$count ");
}
Спустя 14 минут, 3 секунды (14.09.2012 - 12:15) neopk написал(а):
Цитата (Shuriken @ 14.09.2012 - 08:48) |
Исправь$_POST["rate_".$count] |
Извиняюсь, все работает. Спасибо большое за помощь. Пока оставлю вариант с циклом, потом в процессе оптимизации программы буду использовать метод Invis1ble