Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: обновления подрят нескольких строк
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » обновления подрят нескольких строк

Страниц (1): [1]
 

1. mes.01 - 05 Сентября, 2011 - 21:07:32 - перейти к сообщению
есть такая таблица:
********************
wg_id * user_id * slide
********************
2 * 1 * 1
6 * 1 * 3
1 * 2 * 1
44 * 1 * 2

то есть при запросе с критерием user_id=1 выводиться:
2
44
6

есть ещё массив:
$slide=array("3", "2", "1");

вообщем надо написать запрос где поочерёдно обновляются строки в таблице с данными с массива $slide

и в итоге получалось бы так:
********************
wg_id * user_id * slide
********************
2 * 1 * 3
6 * 1 * 2
1 * 2 * 1
44 * 1 * 1
2. -=1100=- - 06 Сентября, 2011 - 11:23:50 - перейти к сообщению
А если что то вроде
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $id=1;
  4.  
  5. foreach($slide as $str){
  6.  
  7. UPDATE *** SET slide= $str  WHERE user_id= $id;
  8.  
  9. }
  10.  
  11.  
3. mes.01 - 06 Сентября, 2011 - 19:13:20 - перейти к сообщению
-=1100=-, не получаеться( пробовал уже..
надо как то с LIMIT попробовать
4. mes.01 - 06 Сентября, 2011 - 22:18:00 - перейти к сообщению
почти такую же проблему нашёл ( http://livestreet[dot]ru/blog/6304[dot]html ) неужели никто не знает как это решить???!!! Нахмурился
5. tuareg - 07 Сентября, 2011 - 01:47:06 - перейти к сообщению
mes.01 пишет:
есть такая таблица:
********************
wg_id * user_id * slide
********************
2 * 1 * 1
6 * 1 * 3
1 * 2 * 1
44 * 1 * 2

то есть при запросе с критерием user_id=1 выводиться:
2
44
6

есть ещё массив:
$slide=array("3", "2", "1");

вообщем надо написать запрос где поочерёдно обновляются строки в таблице с данными с массива $slide

и в итоге получалось бы так:
********************
wg_id * user_id * slide
********************
2 * 1 * 3
6 * 1 * 2
1 * 2 * 1
44 * 1 * 1

Сначала выдергиваете wg_id
Запрос
PHP:
скопировать код в буфер обмена
  1.  
  2. $sql=mysql_query(SELECT wg_id  FROM *** WHERE user_id=1)
  3. $i=0;
  4. while($row=mysql_fetch_array($sql)){
  5.  UPDATE *** SET slide=$slide[$i] WHERE wg_id=$row[0]
  6. ++i;
  7. }
  8.  

Писал на вскидку, возможны ошибки, логика такова, нужно выдернуть не повторяющееся значение(уникальный ключ) и по нему обновлять.
Если значения повторяются, тогда, узнавать количество COUNT(*) WHERE user_id=1
и через цикл можно for()
запрос такой
PHP:
скопировать код в буфер обмена
  1.  
  2. UPDATE *** SET slide=$slide[$i] WHERE user_id=1 LIMIT $i 1
  3.  

На счет этого абсолютно не знаю поддерживается ли LIMIT при UPDATE

 

Powered by ExBB FM 1.0 RC1