Как обновить в табличке сразу 10 различных строк

Статус
Закрыто для дальнейших ответов.

czp

czp
Регистрация
05.06.2011
Сообщения
635
ситуация такова, есть таблица в мускле такой структуры:
Код:
  id	   |   name	   |	 param
---------------------------------------------
   1		  Petia			
   2              Natash            
   3		  Katia			  
   4		  Leha			  
   5		  Roma			  
   6		  ....					
   7		  ....				  
   8		  ....					
   9		  ....				  
1 0		  .....				  
...........
(поровнял криво, думаю понятно, есле что могу нарисовать)

в PARAM должно лежить типа 'Петя сегодня получил двойку' и тому подобное, в каждой строке свое значени
ВОПРОС: как одновременно сделать запрос на обновление 10 строк сразу?????
тоесть

Код:
$query = 'UPDATE school SET param = "On segodno seba vel ochen ploho" WHERE name = "Kolunia"'
и вот так сразу 10 строкам с разными именами и разным значением PARAM
и как бы хочется в один запрос, такое возможно?
есле вдруг нет, то подскажите как лучше переработать структуру таблици
 

Aristotel

Well-Known Member
Регистрация
14.04.2011
Сообщения
213
я в sql не селен так что могу предложить только деревянный способ.
делаете форму с 2*10, с именем и данными. на сервере перетаскиваете все в 2 массива: name[0...9] и param[0...9]. каждого массива по 10.
а потом цикл
for ($i=0;$i<10;$i++)
{
mysql_query ("UPDATE school SET param = '$param[$i]' WHERE name='$name[$i]'",$database);
}


если без цикла то смотрите здесь http://3wforums.ru/topic/9750-zadacha-na-kopirovanie/. здесь пример как можно одним запросом.
 

Molotov

Member
Регистрация
14.11.2011
Сообщения
18
если ваша СУБД поддерживает массивы, можно попробовать сделать что-то типа этого:
'UPDATE school SET param = ?param[id]'
второй способ - просто через точку с запятой пишите свои 10 запросов и они выполнятся все сразу.
 

czp

czp
Регистрация
05.06.2011
Сообщения
635
если ваша СУБД поддерживает массивы, можно попробовать сделать что-то типа этого:
'UPDATE school SET param = ?param[id]'
второй способ - просто через точку с запятой пишите свои 10 запросов и они выполнятся все сразу.
это, как? типа так

Код:
$query = 'UPDATE school SET param = "On segodno seba vel ochen ploho" WHERE name = "Kolunia";
				UPDATE school SET param = "On segodno seba vel ochen ploho" WHERE name = "Kolunia";
				UPDATE school SET param = "On segodno seba vel ochen ploho" WHERE name = "Kolunia";
                   UPDATE school SET param = "On segodno seba vel ochen ploho" WHERE name = "Kolunia"'
 

medwoodu

Злобный модер
Регистрация
22.12.2005
Сообщения
1 418
ситуация такова, есть таблица в мускле такой структуры:
Код:
  id	   |   name	   |	 param
---------------------------------------------
   1		  Petia			
   2			  Natash			
   3		  Katia			  
   4		  Leha			  
   5		  Roma			  
   6		  ....					
   7		  ....				  
   8		  ....					
   9		  ....				  
1 0		  .....				  
...........
(поровнял криво, думаю понятно, есле что могу нарисовать)

в PARAM должно лежить типа 'Петя сегодня получил двойку' и тому подобное, в каждой строке свое значени
ВОПРОС: как одновременно сделать запрос на обновление 10 строк сразу?????
тоесть

Код:
$query = 'UPDATE school SET param = "On segodno seba vel ochen ploho" WHERE name = "Kolunia"'
и вот так сразу 10 строкам с разными именами и разным значением PARAM
и как бы хочется в один запрос, такое возможно?
есле вдруг нет, то подскажите как лучше переработать структуру таблици
http://php.net/manual/ru/mysqli.multi-query.php
 
Статус
Закрыто для дальнейших ответов.
Верх Низ