Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: не работает UPDATE в цикле
 
 автор: serjinio   (19.07.2008 в 03:05)   письмо автору
 
 

в таблице два поля id --автоинкркментное и pos----позиция объекта ...начиная с 1,2,3,.......
id      pos  
1       1   
2       2     
7       3     
8       4     
12      5
67      6

теперь надо удалить строчку с id=7 и пересчитать по новой столбец pos (1,2,3,4,5)новое значение


<?php 

$res 
mysql_query ("SELECT id FROM `CATEGORIES`   ",$db);

if (
mysql_num_rows($res) !== 0
{echo 
"<p>Данный РАЗДЕЛ не пустой!!!  </p>";}
else
{
///////////если Раздел пустой удаляем его/////////////////
$result mysql_query ("DELETE FROM `CATEGORIES` WHERE `id`='$id'  LIMIT 1 ");
if (
$result == 'true'
{
echo 
"<p>Ваш РАЗДЕЛ успешно удален!</p>";
/////////// выводим по новой с уже удаленной строчкой   ///
$res=mysql_query("SELECT pos FROM `CATEGORIES`    ORDER BY `pos` "$db);
///////и обновляем в цикле значение полей столбца POS///////////////
$nn=0;

while(
$row=mysql_fetch_array($res))
{
$nn++;

mysql_query(" UPDATE `CATEGORIES` SET `pos` WHERE `pos` ='$nn'   " $db); 
}
}
}
?>

,а вот в цикле и не хочет обновляться.....Помогите кто сталкивался с UPDATE в цикле... уже вторые сутки сижу и никакого просвета...

   
 
 автор: Trianon   (19.07.2008 в 03:32)   письмо автору
 
   для: serjinio   (19.07.2008 в 03:05)
 

Уверяю Вас, без цикла выполнить его тоже не получится.
После SET должен идти оператор присваивания. У Вас же одно лишь имя поля.

Между прочим, никакого цикла здесь не требуется.
UPDATE tbl SET pos = pos - 1 WHERE pos > $pos

   
 
 автор: serjinio   (19.07.2008 в 04:59)   письмо автору
 
   для: Trianon   (19.07.2008 в 03:32)
 

Огромнейшее спасибо за помощь все запустилось ,преклоняю голову перед профессионалом...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования