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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
alexey11
Отправлено: 02 Сентября, 2011 - 16:15:50
Post Id


Новичок


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


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




Помогите разобраться. Я на php не писал ранее. Поставили просто задачу на работе и нужно сделать.
Нужно чтобы добавлялись записи в таблицу, отображалось ссылкой и редактировать можно нажав на ссылку, но не получается удаление сделать. Чтобы кнопка отдельная была.
Это основной скрипт arh.php
PHP:
скопировать код в буфер обмена
  1. <?
  2. mysql_connect('localhost','root');
  3.  
  4. $table="ulic";
  5.  
  6. if($_SERVER['REQUEST_METHOD']=='POST') {
  7.   $name = mysql_real_escape_string($_POST['name']);
  8.   if ($id = intval($_POST['id'])) {
  9.     $query="UPDATE $table SET name='$name' WHERE id=$id";
  10.   } else {
  11.     $query="INSERT INTO $table SET name='$name'";
  12.   }
  13.   mysql_query($query) or trigger_error(mysql_error()." in ".$query);
  14.   header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
  15.   exit;
  16. }
  17. if (!isset($_GET['id'])) {
  18.   $LIST=array();
  19.   $query="SELECT * FROM $table";
  20.   $res=mysql_query($query);
  21.   while($row=mysql_fetch_assoc($res)) $LIST[]=$row;
  22.   include 'list.php';
  23. } else { // form displaying part:
  24.   if ($id=intval($_GET['id'])) {
  25.     $query="SELECT * FROM $table WHERE id=$id";
  26.     $res=mysql_query($query);
  27.     $row=mysql_fetch_assoc($res);
  28.     foreach ($row as $k => $v) $row[$k]=htmlspecialchars($v);
  29.   } else {
  30.     $row['name']='';
  31.     $row['id']=0;
  32.   }
  33.   include 'form.php';
  34. }
  35. ?>


form.php
PHP:
скопировать код в буфер обмена
  1. <form method="POST">
  2. <input type="text" name="name" value="<?=$row['name']?>"><br>
  3. <input type="hidden" name="id" value="<?=$row['id']?>">
  4. <input type="submit"><br>
  5.  
  6. <br>
  7. <a href="?">Return to the list</a>
  8. </form>


list.php
PHP:
скопировать код в буфер обмена
  1. <a href="?id=0">Добавить запись</a>
  2. <br>
  3. <br>
  4. <? foreach ($LIST as $row): ?>
  5. <li><a href="?id=<?=$row['id']?>"><?=$row['name']?></a>
  6. <? endforeach ?>
  7. <br>
  8. <br>
  9. <a href="index.php">Вернуться к справочнику</a>
 
 Top
antobra
Отправлено: 02 Сентября, 2011 - 22:58:26
Post Id


Посетитель


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


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




Так же как делали добавление так же делаете и удаление.

Например ссылку на arh.php?delete=[идентификатор]

и в arh.php пишете
if (isset($_GET['delete']) AND $_GET['delete']!='' AND is_numeric($_GET['delete'])) {
mysq_query("DELETE FROM $table WHERE id='".$_GET['delete']."' ");
}

Сыро конечно, но основная идея такая.
 
 Top
alexey11
Отправлено: 03 Сентября, 2011 - 09:40:26
Post Id


Новичок


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


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




antobra пишет:
Например ссылку на arh.php?delete=[идентификатор]

Вот именно это у меня не получается, что в смысле - [идентификатор] ?? у меня как раз ен получалось его передать. и если пытаюсь это сделать через кнопку submit то и нажимая на добавление записи - оно удаляет. Если ссылкой то подскажите пожалуйста где ее вставить ... и как и в каком файле.
Спасибо!
 
 Top
antobra
Отправлено: 03 Сентября, 2011 - 16:20:49
Post Id


Посетитель


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


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




CODE (html):
скопировать код в буфер обмена
  1. <a href="arh.php?delete=<?=$_get['id']?>">удалить</a>
, а если выводится в циклах, то вставлять вместо get ту переменную, к которой относится цикл у вас возможно это $row['id'] (скрипт не смотрел, поэтому с переменной сами потрудитесь)
 
 Top
Мелкий Супермодератор
Отправлено: 03 Сентября, 2011 - 16:38:37
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




antobra пишет:
?=$_get['id']?>

Обратите внимание: имена переменный в PHP регистрозависимы. $_GET, $_Get, $_get - 3 разные переменные.


-----
PostgreSQL DBA
 
 Top
alexey11
Отправлено: 03 Сентября, 2011 - 19:07:15
Post Id


Новичок


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


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




Ок! Спасибо! Все получилось.
Но есть одно НО, получается чтобы увидеть что запись удалилась - нужно F5 нажать.
(Добавление)
... а как в этом примере сделать чтобы этого ньюанса не было?
 
 Top
antobra
Отправлено: 04 Сентября, 2011 - 19:32:00
Post Id


Посетитель


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


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




Скрипт выполняется по тому порядку как расположен код - от первой строки до последней. Нужно запрос в базу сделать позже, чем запрос на удаление, тогда страница тебе покажет актуальную информацию.
 
 Top
alexey11
Отправлено: 04 Сентября, 2011 - 20:11:54
Post Id


Новичок


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


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




Получилось. Большое спасибо!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB