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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: запись\редактирование\удаление

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: запись\редактирование\удаление
reffery
Отправлено: 26 Мая, 2009 - 06:46:49
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




Доброго времени суток!
Имеются 2 столбца (id, fio). Записи с конца списка удаляются, но если удалить запись из середины списка, то потом записи вообще не удаляются и не добавляются. Прошу помочь разобраться с этой проблемой.


index.php

PHP:
скопировать код в буфер обмена
  1.  
  2. <a href="form_insert.php?id=0&fio=">Add item</a>
  3. <br>
  4. <?
  5. include 'config.php';
  6. include 'list.php';
  7. ?>
  8.  



list.php
PHP:
скопировать код в буфер обмена
  1. <?
  2. $query="SELECT * FROM $table ORDER BY id";
  3. /////////////////////////////////////       LIST         //////////////////////////////////////
  4. $res=mysql_query($query);
  5. echo("<table width=50% border=1>");
  6. echo("<tr>
  7.         <td width=10% align=center>#</td>
  8.         <td align=center><b>FIO</b></td>
  9.         <td align=center><b>Redact</b></td>    
  10.         <td align=center><b>Delete</b></td>    
  11.         </tr>");
  12. while($row=mysql_fetch_array($res))
  13. {
  14.    echo("<tr>");
  15.    echo("
  16.   <td align=center>".$row['id']."</td>
  17.   <td>".$row['fio']."</td>
  18.   <td><a href=?id=".$row['id'].">REDACT</a> </td>
  19.   <td><a href=del.php?id=".$row['id'].">DEL</a></td>
  20.   ");
  21.    echo("</tr>");
  22. }
  23. echo("</table>");
  24. ?>
  25.  


del.php

PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. include'config.php';
  4. mysql_query("DELETE FROM customer WHERE id=$id ");
  5. ?>
  6.  

(Отредактировано автором: 26 Мая, 2009 - 06:47:45)

 
 Top
Платинум
Отправлено: 26 Мая, 2009 - 09:34:16
Post Id



Частый гость


Покинул форум
Сообщений всего: 223
Дата рег-ции: Апр. 2009  
Откуда: Пермь


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1.  <? if (isset ($_GET['id'])) {$id = $_GET['id'];}   ?>
 
My status
 Top
reffery
Отправлено: 26 Мая, 2009 - 10:35:03
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




спасибо Улыбка
Имеется еще один вопрос по удалению записей.
Итак, после удаления какой-либо записи (например id=2), находящейся в середине, выходит результат:

id |fio |
--------
1 |aaa|
3 |bbb|

после удаления записи №2 происходит переход на index.php, в котором я пытаюсь переписать записи поля id с 1 до 2 и получить это:

id |fio |
--------
1 |aaa|
2 |bbb|


код index.php:
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <?
  4. include'config.php';
  5. $query="SELECT * FROM $table ORDER BY id";
  6. $numrows=mysql_num_rows($query);
  7. $x=0;
  8. while ($x++<$numrows)
  9. mysql_query("INSERT INTO $table VALUES ($x,''");
  10. ?>
  11.  

По замыслу поле id должно переписаться с 1 до 2 не затрагивая поля fio.
Почему то меня смущает запрос ($x,''"). Именно эта часть...........

(Отредактировано автором: 26 Мая, 2009 - 10:52:48)

 
 Top
valenok Модератор
Отправлено: 26 Мая, 2009 - 10:53:47
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




не нужно тебе ничего перезаписывать, во первых.
Во вторых есть такое UPDATE


-----
Truly yours, Sasha.
 
My status
 Top
reffery
Отправлено: 26 Мая, 2009 - 11:11:01
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




спасибо
а как в моем случае применить UPDATE?
 
 Top
valenok Модератор
Отправлено: 26 Мая, 2009 - 11:13:15
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




В твоем случае ничего перезаписывать не надо.

А так что-то в стиле UPDATE `table` SET `id`=`id`-1 WHERE `id`>2 ORDER BY `id` ASC


-----
Truly yours, Sasha.
 
My status
 Top
reffery
Отправлено: 26 Мая, 2009 - 11:43:01
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




в del.php добавляю запрос на UPDATE:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. include'config.php';
  4. if (isset ($_GET['id'])) {$id = $_GET['id'];}
  5. mysql_query("DELETE FROM customer WHERE id=$id ");
  6. mysql_query("UPDATE $table SET id=id-1 WHERE id>2 ORDER BY id ASC")or die (mysql_error());
  7. Header("Location:index.php"); exit;
  8. ?>
  9.  


в таблицу заношу 12 строк, удаляю 11-ю вижу ошибку:
Duplicate entry '2' for key 1

(Отредактировано автором: 26 Мая, 2009 - 12:01:55)

 
 Top
valenok Модератор
Отправлено: 26 Мая, 2009 - 12:48:05
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




во первых лучше скопируй мой запрос с кавычками и апострофами, так, как должно быть.
во вторых WHERE `id` > id удаленной записи.
я для примера написал WHERE `id` > 2 , потому что у тебя в примере удалялась вторая запись


-----
Truly yours, Sasha.
 
My status
 Top
reffery
Отправлено: 26 Мая, 2009 - 13:14:33
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




но записей-то у меня гораздо больше!
я хочу чтобы нумерация выправлялась, если будут удаляться записи из разных мест таблицы
пс:
del.php имеет вид
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. include'config.php';
  4. if (isset ($_GET['id'])) {$id = $_GET['id'];}
  5. mysql_query("DELETE FROM customer WHERE id=$id ");
  6. mysql_query("UPDATE $table SET id=id-1 WHERE id>2 ORDER BY id ASC")or die (mysql_error());
  7. Header("Location:index.php"); exit;
  8. ?>
  9.  
  10.  


удаляю 4-ю запись из 5-ти записей, имею это:
Table 'customer.id' doesn't exist

у меня одна база, одна таблица:

CREATE TABLE `customer` (
`id` int(3) NOT NULL auto_increment,
`fio` text NOT NULL,
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=13 ;
 
 Top
valenok Модератор
Отправлено: 26 Мая, 2009 - 13:17:21
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Сейчас попробуем разобраться. Давай я попробую пунктуацию поменять..

Во первых: лучше скопируй мой запрос с кавычками и апострофами, так, как правильно оформленный запрос должен выглядеть.

Во вторых: должно быть WHERE `id` > id удаленной записи.
Ведь я для примера написал WHERE `id` > 2 , так как у тебя в примере удалялась вторая запись.

--

А то что ты уже второй раз игнорируешь мои сообщения - жалко.
В третий раз обещаю обидеться. На всякий случай повторю еще раз.

1. Не нужно восстанавливать беспробельную нумеровку .
2.
Цитата:
вo первых лучше скопируй мой запрос с кавычками и апострофами, так, как должно быть.
во вторых WHERE `id` > id удаленной записи.
я для примера написал WHERE `id` > 2 , потому что у тебя в примере удалялась вторая запись


-----
Truly yours, Sasha.
 
My status
 Top
reffery
Отправлено: 26 Мая, 2009 - 13:23:45
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




извиняюсь, запрос на апдейт был взят с предыдущего моего поста. Del.php выглядит так:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. include'config.php';
  4. if (isset ($_GET['id'])) {$id = $_GET['id'];}
  5. mysql_query("DELETE FROM customer WHERE id=$id");
  6. mysql_query("UPDATE `id` SET `id`=`id`-1 WHERE `id`>2 ORDER BY `id` ASC")or die (mysql_error());
  7. Header("Location:index.php"); exit;
  8. ?>


ошибка: Table 'customer.id' doesn't exist
(Добавление)
reffery пишет:
Ведь я для примера написал WHERE `id` > 2 , так как у тебя в примере удалялась вторая запись.


как описать универсальный UPDATE запрос?
 
 Top
valenok Модератор
Отправлено: 26 Мая, 2009 - 13:26:15
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




не, это я извиняюсь. UPDATE название таблицы, а не UPDATE название поля
все правильно. UPDATE `".$table."`

--

А строчкой выше той, которую ты цитировал/а - что написано ?
(Добавление)
Твое сообщение я стер потому что оно было длинным и не нужным. Зачем весь твой код, да еще какого-то лишнего файла, если ошибка в простом маленьком запросе.
А так как ты уже третий (А строчкой выше той, которую ты цитировал/а - что написано ?)
раз проигнорировала самые важные части моих постов - я обиделся.


-----
Truly yours, Sasha.
 
My status
 Top
reffery
Отправлено: 26 Мая, 2009 - 14:04:55
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




Цитата:

А строчкой выше той, которую ты цитировал/а - что написано ?
раз проигнорировала самые важные части моих постов - я обиделся.


У меня только 2 файла и я привожу код двух файлов index.php и del.php.
Оба файла я привожу так как они на данный момент выглядят. "Строчка выше".... Нет строчек выше!
 
 Top
valenok Модератор
Отправлено: 26 Мая, 2009 - 14:13:55
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Аа.. )


Цитата:
reffery пишет:
Цитата:
Ведь я для примера написал WHERE `id` > 2 , так как у тебя в примере удалялась вторая запись.



Строкой выше той, которую ты цитировал/а вот тут.


-----
Truly yours, Sasha.
 
My status
 Top
reffery
Отправлено: 26 Мая, 2009 - 14:19:28
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




я действительно не ВЪЕЗЖАЮ, что вы имеете ввиду. Я привожу код файлов , привожу ошибку..
спасибо за время, которое вы мне уделили
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB