[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Прошу помощи не работает удаление
DenisovVSh
Доброго времени суток. У меня проблема в удалении через админку. После нажатия submit форма отправляет в обработчик данные, возвращает "Информация удалена успешно!", но при проверке инфа остается там же. huh.gif

вот мой код файла с формой:


<?php include("blocks/db.php");?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<
html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<
title>Удаление услуг</title>
<
link href="style.css" rel="stylesheet" type="text/css">
</
head>
<
body>

<
h1>Удаление услуг</h1><br>
<
form action="drop_service.php" method="post">
<?php
$result = mysql_query("SELECT title,id FROM service");
$myrow = mysql_fetch_array($result);

do{
printf("<p><input name='id' type='radio' values='%s'><label>%s</label></p>",$myrow["id"],$myrow["title"]);
}
while($myrow = mysql_fetch_array($result));
?>
<input name="submit" type="submit" value="Удалить">
</
form>

</
body>
</
html>


это код обработчика:


<?php
include("blocks/db.php");
if(isset($_POST['id'])){$id = $_POST['id'];}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<
html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<
title>Обработчик</title>
<
link href="style.css" rel="stylesheet" type="text/css">
</
head>
<
body>
<?php
if(isset($id))
{
$resul = mysql_query("DELETE FROM service WHERE id='$id'");

if($resul == 'true'){echo"<p>Информация удалена успешно!</p>";}
else{echo"<p>Информация НЕ удалена!</p>";}
}

else
{
echo"<p>Введена не вся информация об услуге</p>";
}

?>

</body>
</
html>




Спустя 16 минут, 45 секунд (1.06.2010 - 11:49) Basili4 написал(а):
mysql_query("DELETE FROM service WHERE id='$id'"); - $id -если он индификатор то юолжен быть без кавчек

Спустя 5 минут, 23 секунды (1.06.2010 - 11:55) Gabriel написал(а):
Basili4
а ежели так?
mysql_query("DELETE FROM service WHERE id='".intval( $id )."'") or die( mysql_error() ); 

Спустя 7 минут, 44 секунды (1.06.2010 - 12:02) DenisovVSh написал(а):
ничего из предложеного не помогло

Спустя 5 минут, 44 секунды (1.06.2010 - 12:08) DenisovVSh написал(а):
может кто нить подскажет - почему удаление может не работать и почему в моем варианте выдает - " Информация удалена успешно! " ???? А удаления не происходит.

Зарание огромное СПОСИБО.

Спустя 17 секунд (1.06.2010 - 12:08) Gabriel написал(а):
echo "DELETE FROM service WHERE id='".intval( $id )."'";

выведи на экран запрос посмотри что приходит в id

Спустя 7 минут, 29 секунд (1.06.2010 - 12:16) DenisovVSh написал(а):
Ничего не выводит, но если в проводник после ..../drop_service.php вручную добавить ?id=10
то тогда удаление происходит

Спустя 9 минут, 14 секунд (1.06.2010 - 12:25) Gabriel написал(а):
1. замени это
if(isset($id))
на
if( isset( $id ) && isset( $_POST['submit'] ) )

2. это
if($resul == 'true')
на
if($resul == true )

3. это
if(isset($_POST['id'])){$id = $_POST['id'];}
на
$id = isset( $_POST['id'] ) ? $_POST['id'] : NULL;


а также почитай http://phpforum.ru/index.php?showtopic=21916

Спустя 21 минута, 48 секунд (1.06.2010 - 12:47) DenisovVSh написал(а):
все заменил, теперь пишет " Информация НЕ удалена ". А почему у Е. Попова все работает??

Спустя 6 минут, 57 секунд (1.06.2010 - 12:54) Bezdna написал(а):
Цитата (DenisovVSh @ 1.06.2010 - 12:47)
А почему у Е. Попова все работает??

Потому что ты невнимательно прочитал (?) вышеприведённую тему - http://phpforum.ru/index.php?showtopic=21916

Спустя 9 минут, 51 секунда (1.06.2010 - 13:04) DenisovVSh написал(а):
теперь код обработчика выглядит вот так:

<?php
include("blocks/db.php");
$id = isset( $_POST['id'] ) ? $_POST['id'] : NULL;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<
html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<
title>Обработчик</title>
<
link href="style.css" rel="stylesheet" type="text/css">
</
head>
<
body>
<?php
if( isset($id) && isset($_POST['submit']))
{
$resul = mysql_query("DELETE FROM service WHERE id='".intval( $id )."'") or die( mysql_error() );

if($resul == true ){echo"<p>Информация удалена успешно!</p>";}
else{echo"<p>Информация НЕ удалена!</p> $resul";}
}

else
{
echo"<p>Введена не вся информация об услуге</p>";
}

?>
</body>
</
html>
пишет что "информация удалена", но не удаляется sad.gif

Спустя 35 минут, 54 секунды (1.06.2010 - 13:40) Gabriel написал(а):
<?php
if ( isset($id) && isset($_POST['submit'])) {
var_dump( $id );
$resul = mysql_query("DELETE FROM service WHERE id='".intval( $id )."'") or die( mysql_error() );
if ($resul == true ){
echo"<p>Информация удалена успешно!</p>";
} else {
echo "<p>Информация НЕ удалена!</p>";
}
echo "DELETE FROM service WHERE id='".intval( $id )."'";
} else {
echo"<p>Введена не вся информация об услуге</p>";
}
?>

та всеже какое значение попадает в переменную id?

Спустя 12 минут, 56 секунд (1.06.2010 - 13:53) DenisovVSh написал(а):
заменил в обработчике свой код на укзанный выше - теперь выдает :

string(2) "on"

Информация удалена успешно!
DELETE FROM service WHERE id='0'

а текущий существующий id='11', он единственный

Спустя 1 час, 47 минут, 3 секунды (1.06.2010 - 15:40) agentor написал(а):
у вас форма не верно отсылает данные в $_POST массив...
а точнее это
printf("<p><input name='id' type='radio' values='%s'>

а нужно

printf("<p><input name='id' type='radio' value='%s'>


не values а value

Спустя 1 час, 17 минут, 55 секунд (1.06.2010 - 16:58) DenisovVSh написал(а):
Всем кто мне ответил, Большое Спосибо, agentor тебе респектище за внимательность biggrin.gif
Тема закрыта.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.