|
|
|
|
|
для: FaStY
(27.01.2006 в 09:04)
| | Решение вы найдёте в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=427
PS Вопросы, посвящённые MySQL лучше сразу размещать в форуме MySQL. | |
|
|
|
|
|
|
|
для: FaStY
(27.01.2006 в 09:04)
| | Ох, тяжело чужой код разгребать! :-)
В общем надо так. В форме надо каждому чекбоксу сделать уникальное имя, например id0, id1,id2 и т.д.
<input type="checkbox" name="id$i">
|
значение ему можно и не присваивать, это в общем то не нужно.
Для простоты можно еще передать количество чекбоксов через скрытое поле, т.е. в форму добавить
<input type="hidden" name="num_checkbox" value="$num">
|
здесь переменная $num содержит количество чекбоксов
Затем в файле-обработчике пишем
<?php
$num = $_POST['num_checkbox'];
for ($i=0; $i<$num; $i++)
{
// смотрим очередной чекбокс
$checkbox = $_POST['id'.$i];
if ($checkbox == 'on')
{
// если чекбок отмечен, т.е. равен 'on', то выполняем запрос
$res = mysql_query('delete from message where id='$i);
if (!$res)
{
echo 'Не удалось удалить запись';
exit;
}
}
}
?>
|
| |
|
|
|
|
|
|
| И снова чекбоксы: на форуме я нашел про удаление при помощи чекбоксов данных с файла. А не подскажите как это осуществить в MySQL базе?
Вот страница index.php
<?php
//подключение к базе данных
$link = mysql_connect("localhost", "fasty", "")
or die ("Could not connect to MySQL");
//выбор базы
mysql_select_db ("mail2mail")
or die ("Could not select database");
//составление запроса
$query = "SELECT pismoot, pismoto, theme, text, id, readed, date FROM message WHERE pismoto='$user' ". $query ."ORDER BY readed DESC ";
$result = mysql_query ($query)
or die ("Query failed");
$countrow=mysql_num_rows($result );
print 'Всего сообщений: '.$countrow.'<br>';
//составление запроса на новые сообщения
$new_query = "SELECT pismoot, pismoto, theme, text, id, readed FROM message WHERE readed='1' AND pismoto='$user' ";
$new_result = mysql_query ($new_query)
or die ("Query failed");
$new_countrow=mysql_num_rows($new_result );
//проверка на количество новых писем
if ($new_countrow =='0'){
$new_countrow='нет';
}
print 'Новых сообщений: '.$new_countrow;
//table ne v cicle
print "<table border=0 ><form name='delete' method='post' action='delete_mes.php'><table width='100%' border='0' cellspacing='0' >
<tr>
<td>действие</td>
<td>тема</td>
<td>от</td>
<td>дата</td>
</tr> <tr>";
//начало цкла
while ( $row = mysql_fetch_row ($result) ):
$ids = $row[4];
$readed = $row[5];
//проверка на новые письма
if (! $readed =='0'){
$read=' (Новое)';
}
else {
$read= '';
}
print "
<td><input type='checkbox' name=''type[]' value='$ids'></td>
<td><a href='message.php?id=$ids'>$row[2] <font color='#FF0000'>$read </font></a></td>
<td><a href='whrite.php?touser=$row[0]'>$row[0] </a></td>
<td>$row[6]</td> </tr>
";
//конец цикла
endwhile;
print " <input type=submit>
</table></form></table>";
?>
|
вот страница delete_mes.php
<META http-equiv=Content-Type content=text/html;charset=windows-1251>
<?php
//подключение к базе данных
$link = mysql_connect("localhost", "fasty", "")
or die ("Could not connect to MySQL");
//выбор базы
mysql_select_db ("mail2mail")
or die ("Could not select database");
//составление запроса
$type = $_POST['type'];
if(!empty($type))
{
// Начинаем формировать переменную, содержащую этот список
// в формате "(3,5,6,7)"
$query = "(";
foreach($type as $val) $query .= "$val,";
// Удаляем последнюю запятую, заменяя её закрывающей скобкой )
$query = substr($query, 0, strlen($query) - 1).")";
// Завершаем формирование SQL-запроса на удаление
$query = "DELETE FROM message WHERE id='$id' ";
// Выполняем запрос
if(!mysql_query($query))
{
echo mysql_error()."<br>";
echo $query."<br>";
}
}
?>
|
Что неправильно? | |
|
|
|
|