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 »   

> Без описания
whitelex
Отправлено: 31 Декабря, 2006 - 00:10:18
Post Id



Новичок


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


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




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

Имеется таблица на сайте( <table> ) в которой перечислены данные взятые из таблицы MySQL (типа id, название, описание, дата добавления и т.д...).
Все работает прекрасно. Но когда я хочу что-то удалить или изменить в этой таблице приходится это делать через phpmyadmin. Как мне это сделать непосредственно на сайте, напрямую?

Пример:

Имя | Описание | Дата доб. | Удалить | Редактировать
-------------------------------- -------------------------------- -------------
Слон | большой, серый | 30-12-06 | Х | Р
 
 Top
evgenijj
Отправлено: 31 Декабря, 2006 - 00:59:36
Post Id



Участник


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


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




PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. if ( !isset( $_GET["action"] ) ) $_GET["action"] = "showlist";
  5. $action = $_GET["action"];
  6. $id = $_GET["id"];
  7.  
  8. switch ( $action )
  9. {
  10.     case "showlist":
  11.         show_list(); break;
  12.     case "delete":
  13.         delete_item( $id );
  14.         show_list(); break;
  15.     case "update":
  16.         update_item( $id );
  17.         show_list(); break;
  18.     case "editform":
  19.         get_edit_item_form( $id ); break;
  20.     default:
  21.         show_list();
  22. }
  23.  
  24. function show_list()
  25. {
  26.     $query = "SELECT id, title, description FROM items WHERE 1";
  27.     $res = db_query( $query );
  28.     echo "<h2>Список</h2>";
  29.     echo "<table>";
  30.     echo "<tr><th>ID</th><th>Наименование</th><th>Описание</th><th>Ред.</th><th>Удл.</th></tr>";
  31.     while ( $item = db_fetch_array( $res ) )
  32.     {
  33.         echo "<tr>";
  34.         echo "<td>".$item["id"]."</td>";
  35.         echo "<td>".$item["title"]."</td>";
  36.         echo "<td>".$item["description"]."</td>";
  37.         echo "<td><a href='".$_SERVER["PHP_SELF"]."?action=editform&id=".$item["id"]."'>Ред.</a></td>";
  38.         echo "<td><a href='".$_SERVER["PHP_SELF"]."?action=delete&id=".$item["id"]."'>Удл.</a></td>";
  39.         echo "</tr>";
  40.     }
  41.     echo "</table>";
  42. }
  43.  
  44. function get_edit_item_form( $id )
  45. {
  46.     echo "<h2>Редактировать</h2>";
  47.     $query = "SELECT title, description FROM items WHERE id=".$id;
  48.     $res = db_query( $query );
  49.     $item = db_fetch_array( $res );
  50.     echo "<form name='editform' action='".$_SERVER["PHP_SELF"]."?action=update&id=".$id."' method='POST'>";
  51.     echo "<table>";
  52.     echo "<tr>";
  53.     echo "<td>Наименование</td>";
  54.     echo "<td><input type='text' name='title' value='".$item["title"]."'></td>";
  55.     echo "</tr>";
  56.     echo "<tr>";
  57.     echo "<td>Описание</td>";
  58.     echo "<td><textarea name='description'>".$item["description"]."</textarea></td>";
  59.     echo "</tr>";
  60.     echo "<tr>";
  61.     echo "<td><input type='submit' value='Сохранить'></td>";
  62.     echo "<td><button type='button' onClick='javascript: history.back();'>Отменить</button></td>";
  63.     echo "</tr>";
  64.     echo "</table>";
  65.     echo "</form>"
  66. }
  67.  
  68. function update_item( $id )
  69. {
  70.     $title = db_escape_string( $_POST['title'] );
  71.     $description = db_escape_string( $_POST['description'] );
  72.     $query = "UPDATE items SET title='".$title."', description='".$description."',
  73.              WHERE id=".$id;
  74.     db_query ( $query );
  75.     return true;
  76. }
  77.  
  78. function delete_item( $id )
  79. {
  80.     $query = "DELETE FROM items WHERE id=".$id;
  81.     db_query ( $query );
  82.     return true;
  83. }
  84.  
  85. ?>
  86.  
 
 Top
Andrey5555
Отправлено: 12 Ноября, 2007 - 19:16:53
Post Id


Частый гость


Покинул форум
Сообщений всего: 183
Дата рег-ции: Авг. 2007  


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




Мне не понятно откуда это $id = $_GET["id"]; Что за ["id"], откуда оно взялось и что это?
Заранее спасибо
 
 Top
evgenijj
Отправлено: 12 Ноября, 2007 - 19:27:24
Post Id



Участник


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


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




id - это первичный ключ таблицы (PRIMARY KEY)
 
 Top
Snic
Отправлено: 12 Ноября, 2007 - 22:45:06
Post Id



Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Окт. 2007  


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




Andrey5555
я тебя понял про что ты
замени строку с

на
PHP:
скопировать код в буфер обмена
  1. if ( isset( $_GET["id"] ) ) $id = $_GET["id"];

так надо
сам по началу затупил на этом Растерялся

evgenijj
жека твоя школа Закатив глазки


-----
Лень - двигатель прогресса, имхо Улыбка
Работаю над проектами в сфере информационного сайтостроения.
 
 Top
Andrey5555
Отправлено: 13 Ноября, 2007 - 18:35:24
Post Id


Частый гость


Покинул форум
Сообщений всего: 183
Дата рег-ции: Авг. 2007  


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




Почему именно так а не иначе. Как так получаеться? Почему первичный ключ? Как он генерирует?
 
 Top
whitelex
Отправлено: 13 Ноября, 2007 - 19:57:35
Post Id



Новичок


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


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




Какую тему старую подняли! Улыбка

Теперь я постараюсь сам объяснить нуждающемся! Более-менее понятным языком...

1. Допустим есть таблица в MySql с именами пользователей (users), поля в ней:
id | name | ip

Каждый раз когда сюда что-то добавляется - id будет возрастать и никогда в этом поле не будет одинакового значения.
Допустим так
1 | alex | 127.0.0.1
2 | dima | 127.0.0.2
3 | jenia | 127.0.0.3

2. Как сделать так, чтобы id возрастал?
Пример mysql команды INSERT INTO `users` VALUES (' ', '$user', '$ip');
Если у вас id указан как первичный ключ (Primary Key), то тогда в первом значении Values (там где, пробел межу кавычками), каждый раз будет возрастать число!

3. Теперь как удалить из этой таблице что-либо через HTML интерфейс или что такое $_GET['id']?
Допустим есть у нас таблица куда мы вывели пользователей и их IP с MySQL посредством PHP.
Выглядить она должна так:
Alex | 127.0.0.1 | X ( под крестом ссылка: www...ru/users.php?comand=delete&id=1 )
Dima | 127.0.0.2 | X (под крестом ссылка: www...ru/users.php?comand=delete&id=2 )
Jenia | 127.0.0.3 | X (под крестом ссылка: www...ru/users.php?comand=delete&id=3 )
В каждой ссылке id соответствует именам, как сделать сами догоняйте! Улыбка

4. Что теперь должно происходить в файле users.php?
PHP:
скопировать код в буфер обмена
  1. if (isset ($_GET['comand']) ) {                
  2.   $comand = $_GET['comand'];
  3.   if($comand == 'delete') {                      // Взгляните на ссылку сверху  comand=delete, т.е $comand = 'delete' (Языком  PHP)
  4.     $id = $_GET['id'];                              // Переменная $id берет значение из адресной строки
  5.     $sql = mysql_query("DELETE  FROM 'users'  WHERE 'id' = '$id' ; ")  or  die(mysql_error());
  6.   }
  7. }
  8.  
\n\n(Добавление)
evgenijj
Забыл поблагодорить, спасибо! Улыбка
 
 Top
Andrey5555
Отправлено: 14 Ноября, 2007 - 18:57:37
Post Id


Частый гость


Покинул форум
Сообщений всего: 183
Дата рег-ции: Авг. 2007  


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




А как изменяеться линк? Остальное я понял)). Спасибо.
if (isset ($_GET['comand']) )

Можно это не писать?
 
 Top
T-Mon
Отправлено: 14 Ноября, 2007 - 21:34:24
Post Id


Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Нояб. 2007  


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




ПО ходу, можно, ибо мы проверяем, существует ли переменная, если не существует, то создаем и задаем значение ей "show_list", которое, в свою очередь поставлять не обязательно, ибо уже имеется в операторе switch пункт default, который в случае не соответствия никакому параметру в любом случае запустит функцию show_list. То есть этот элемент кода:
PHP:
скопировать код в буфер обмена
  1. if ( !isset( $_GET["action"] ) ) $_GET["action"] = "showlist";
  2.  $action = $_GET["action"];
  3.  $id = $_GET["id"];
  4.  
  5.  switch ( $action )
  6.  {
  7.      case "showlist":
  8.          show_list(); break;
  9.      case "delete":
  10.          delete_item( $id );
  11.          show_list(); break;
  12.      case "update":
  13.          update_item( $id );
  14.          show_list(); break;
  15.      case "editform":
  16.          get_edit_item_form( $id ); break;
  17.      default:
  18.          show_list();
  19.  }

на мой взгяд, можно заменить на
PHP:
скопировать код в буфер обмена
  1. $action = $_GET["action"];
  2.  $id = $_GET["id"];
  3.  
  4.  switch ( $action )
  5.  {
  6.      case "delete":
  7.          delete_item( $id );
  8.          show_list(); break;
  9.      case "update":
  10.          update_item( $id );
  11.          show_list(); break;
  12.      case "editform":
  13.          get_edit_item_form( $id ); break;
  14.      default:
  15.          show_list();
  16.  }
\n\n(Добавление)
В линк ты просто подставляешь переменные, например (но не уверен, не имею опыта, могу допустить ошибку):
echo "<a href=http://".$home_link."/action.php?action=".$action."&id=".$id.">".$action."</a>", где $home_link - линк на главную страницу, $action - тип действия, $id - идентификационный номер изменяемого элемента.
 
 Top
Andrey5555
Отправлено: 28 Ноября, 2007 - 16:37:42
Post Id


Частый гость


Покинул форум
Сообщений всего: 183
Дата рег-ции: Авг. 2007  


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




Яне очень догоняю. Напишите плз как будет выглядеть весь скрипт, без создания функций и простым спосом. Надо удаление и редактирование.
Заранее спасибо.
 
 Top
Andrey5555
Отправлено: 29 Ноября, 2007 - 16:05:13
Post Id


Частый гость


Покинул форум
Сообщений всего: 183
Дата рег-ции: Авг. 2007  


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




Напишите плз.
 
 Top
valenok
Отправлено: 29 Ноября, 2007 - 16:06:34
Post Id



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


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


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




за две недели можно было всё выучиьт и самому всё написать.
Или хотябы заработать столько чтоб можно было это заказать


-----
Truly yours, Sasha.
 
My status
 Top
Andrey5555
Отправлено: 29 Ноября, 2007 - 16:22:11
Post Id


Частый гость


Покинул форум
Сообщений всего: 183
Дата рег-ции: Авг. 2007  


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




Это можно было бы выучить, если бы я это понимал. Но я этого не понимаю, а тупо копировать не хочу.
 
 Top
valenok
Отправлено: 29 Ноября, 2007 - 16:41:58
Post Id



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


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


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




ТОгда зачем вам всё писать?
Всё что не понимаем и не описанно в документации
задаём в новом топике.


-----
Truly yours, Sasha.
 
My status
 Top
Andrey5555
Отправлено: 29 Ноября, 2007 - 17:13:42
Post Id


Частый гость


Покинул форум
Сообщений всего: 183
Дата рег-ции: Авг. 2007  


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




Зачем засорять форум одинаковыми темами. Обьясните пожалуйста, со всеми названиями файлов. Очень прошу.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB