|
 126.3 Кб |
|
| Cделал работает но как всегда появляется другая проблема, Допустим я отметил три пункта для удаления они удалились но выводится три раза надпись "Ваш комментарий удален!" и три раза блок с навигацией одним словом всё выводиться как в цикле сколько отмеченых столько и выводится
Подскажите что не правильно сделал
<?php
include ("lock.php");
include ("blocks/bd.php");
if (!empty($_POST['id'])) {$id = $_POST['id'];}
foreach( $id as $idd ){
?>
<!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>
<table width="1006" align="center" class="transparent">
<tr>
<?php include ("blocks/header.php");?>
</tr>
<tr>
<td height="508" align="center" valign="top" bgcolor="#000000"><table width="1000" border="0" class="semiopacity">
<tr>
<?php include ("blocks/lefttd.php");?>
<td width="642" align="left" valign="top" bgcolor="#000000">
<?php
if (isset($id))
{
$query = "DELETE FROM comments
WHERE id='$idd'";
$result = mysql_query($query) or die(mysql_error());
if ($result == 'true') {echo "<p>Ваш коментарий успешно удалена!</p>" ;}
else {echo "<p>Ваш коментарий не удален!</p>";}
}
else
{
echo "<p>Вы запустили данный фаил без параметра id и поэтому, удалить коментарий невозможно </p>";
}
}
?>
</td>
<?php include ("blocks/righttd.php");?>
</tr>
</table></td>
</tr>
<tr>
<?php include ("blocks/downtd.php");?>
</tr>
|
База данных простая id и text | |
|
|
|
|
|
|
|
для: zorg84
(18.08.2011 в 13:34)
| | Не осуществляйте удаление в цикле, а формируйте запрос, который бы удалял сразу все записи
<?php
...
$query = "DELETE FROM comments
WHERE id IN (".implode(", ", $_POST['id']).")'";
...
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(18.08.2011 в 14:09)
| | Заменил но нечего не получилось подскажи что не так сделал | |
|
|
|
|
|
|
|
для: zorg84
(18.08.2011 в 14:48)
| | да ещё я передаю не просто переменную а массив
input name='id[]' type='checkbox' value='%s'>
|
| |
|
|
|
|
|
|
|
для: zorg84
(18.08.2011 в 14:48)
| | 1) Записи удаляются?
2) Цикл foreach убрали?
PS Выведите запрос $query при помощи echo - как он сейчас выглядит. | |
|
|
|
|
|
|
|
для: cheops
(18.08.2011 в 15:11)
| | подожди сейчас проверю | |
|
|
|
|
|
|
|
для: zorg84
(18.08.2011 в 15:14)
| | Цикл foreach удалил
-----------------------------------
DELETE FROM comments WHERE id IN (331)'
Ваш коментарий не удален!
----------------------------- | |
|
|
|
|
|
|
|
для: zorg84
(18.08.2011 в 15:17)
| | Ага, кавычка просочилась, исправьте запрос следующим образом
<?php
...
$query = "DELETE FROM comments
WHERE id IN (".implode(", ", $_POST['id']).")";
...
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(18.08.2011 в 15:19)
| | id передаёт но выводит
DELETE FROM comments WHERE id IN (330, 331, 332, 333)
Ваш коментарий не удален! | |
|
|
|
|
|
|
|
для: zorg84
(18.08.2011 в 15:22)
| | вот на всякий случай структура базы
CREATE TABLE `comments` (
`id` int(5) NOT NULL auto_increment,
`post` varchar(5) NOT NULL,
`author` varchar(100) NOT NULL,
`text` text NOT NULL,
`date` date NOT NULL,
`email` varchar(250) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=334 ;
|
| |
|
|
|
|
|
|
|
для: zorg84
(18.08.2011 в 15:23)
| | пропустил запрос
$query = "DELETE FROM comments
WHERE id IN (".implode(", ", $_POST['id']).")";
mysql_query($query) or die(mysql_error());
echo $query;
Большое спасибо | |
|
|
|
|
|
|
|
для: zorg84
(18.08.2011 в 15:22)
| | Хм... странно, что вы сравниваете со строкой "true", так вообще не делают, обычно поступают так
<?php
...
if (mysql_query($query)) {echo "<p>Ваш коментарий успешно удалена!</p>" ;}
else {echo "<p>Ваш коментарий не удален!</p>".mysql_error();}
...
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(18.08.2011 в 15:35)
| | сейчас так и сделаю потому что как раз неправильно выводится при удалении пишется
" Ваш коментарий не удален " | |
|
|
|
|
|
|
|
для: zorg84
(18.08.2011 в 15:43)
| | Спасибо | |
|
|
|