Forum Webscript.Ru

Общие => Базы данных => Тема начата: Petroffs от 23 Января 2004, 14:47:31

Название: mySQL UPDATE
Отправлено: Petroffs от 23 Января 2004, 14:47:31

$sql = "update off set off_num = \'$num[0]\' where off_id = \'$id[1]\'";
$result = mysql_query($sql);
$sql = "update off set off_num = \'$num[1]\' where off_id = \'$id[0]\'";
$result = mysql_query($sql);


//подобное выражение можно ли упростить?



Название: mySQL UPDATE
Отправлено: Yukko от 23 Января 2004, 14:48:59
хватит кросспостить!
Название: mySQL UPDATE
Отправлено: ThE0ReTiC от 23 Января 2004, 15:08:20
Petroffs
Следующая волна ментального мусора будет премирована баном
первое и последнее предупреждение
Название: mySQL UPDATE
Отправлено: Petroffs от 23 Января 2004, 15:47:17
подобное выражение можно ли упростить?

я же вопрос спросил, баньте, если уж так желаете,
но на вопрос то можно ответить.
из ПХП этот вопрос хотел удалить, да прав на то не имею.....
Название: mySQL UPDATE
Отправлено: Меняздесьдавнонет от 23 Января 2004, 17:12:02
можно написать цикл
Название: mySQL UPDATE
Отправлено: Petroffs от 23 Января 2004, 17:52:59
я так и сделал, только думал что может можно в одном аплоаде умудриться запрос оформить, ан нет
Название: mySQL UPDATE
Отправлено: Yukko от 23 Января 2004, 18:04:13
Цитировать
Petroffs:
аплоаде

Hint:
upload != update
Название: mySQL UPDATE
Отправлено: Croaker от 23 Января 2004, 18:05:48
Petroffs

А что тебе не нравится в приведенном тобой коде?
Название: mySQL UPDATE
Отправлено: FreeSpace от 23 Января 2004, 19:25:25
Croaker
Я так понимаю, что количество запросов.
Название: mySQL UPDATE
Отправлено: Макс от 24 Января 2004, 15:29:50
в принципе можно через IF попробовать, примерно так :
UPDATE tab SET off_num = IF (off_id = $id[1], $num[0], $num[1]) WHERE off_id IN ($id[0]. $id[1])
Название: mySQL UPDATE
Отправлено: Petroffs от 26 Января 2004, 11:24:07
Цитировать
Макс:
UPDATE tab SET off_num = IF (off_id = $id[1], $num[0], $num[1]) WHERE off_id IN ($id[0]. $id[1])


... IN ($id[0]. $id[1]) - так вроде не пишется ведь...
я немного по другому пробовал
$t = implode (",",$id);
... IN (\'$t\')
только он здесь апдейт брал лишь первый элемент $id
Цитировать
Макс:
IF (off_id = $id[1], $num[0], $num[1])

а это очень загадочная для меня конструкция, объясни пожалуйста что тут ИФ делает?
Название: mySQL UPDATE
Отправлено: Petroffs от 26 Января 2004, 11:26:13
Цитировать
Yukko:
Hint:
upload != update

да уж, ошибочка вышла, буду повнимательнее:)
Название: mySQL UPDATE
Отправлено: Макс от 26 Января 2004, 12:50:11
Цитировать
Petroffs:
... IN ($id[0]. $id[1]) - так вроде не пишется ведь...
я немного по другому пробовал
$t = implode (",",$id);

1. я показывал лишь идею а не готовое решение
2. мой вариант будет работать (если вообще работать - мне проверять лень) лишь если в массиве будет только 2 элемента.

http://www.mysql.com/doc/ru/Control_flow_functions.html
Название: mySQL UPDATE
Отправлено: Меняздесьдавнонет от 26 Января 2004, 17:06:23
Макс, в данном случае ты подал очень вредную идею.
во-первых, готовый код без объясниний приносит только вред.
А что во-вторых, я говорить не буду