Коротко:
На основе запроса у меня есть несколько флажков, генерируемых динамически. Значением каждого флажка является строка из одной из строк запроса;
при отправке формы запускается другой скрипт (del.php). Этот скрипт получает массив флажков, которые были проверены, и проходит по ним, чтобы он мог выполнить еще два запроса, а именно запросы на удаление и обновление.
Они не работают! если я попробую запрос INSERT, он работает нормально. Но УДАЛИТЬ И ОБНОВИТЬ не.
Вот мой код:
index.php:
<?php
$gettips = mysql_query('SELECT body FROM tips WHERE body!="" and approved!="yes" and approved!="no"')or die(mysql_error());
$i=0;
while($tips = mysql_fetch_array($gettips))
{ ?>
<input type="checkbox" name="checkboxes[]" value="<?php print $tips[0] ?>" />
<input type="checkbox" name="checkboxesno[]" value="<?php print $tips[0] ?>" />
<a class="names"> - <span><?php print $tips[0] ?></span></a><br />
<? $i++;
}
?>
и del.php:
foreach($_POST['checkboxes'] as $check) {
mysql_query("INSERT INTO approved (body) VALUES ('$check') ");
mysql_query("UPDATE tips SET approved='yes' WHERE body='$check'");
}
foreach($_POST['checkboxesno'] as $key) {
mysql_query("DELETE FROM tips WHERE body='$key' ")or die(mysql_error());
}
mysql_error()
не выдает никаких ошибок. Подключение к базе данных работает в обоих файлах. Значения флажков являются строками. Я могу удалить запись, добавив в запрос саму строку, а не POST $variable
.
(Я также заметил, что не могу удалить старые записи, только недавно добавленные).
UPDATE:
Я понял, что пытаться удалять записи, где row='string'
, не было лучшей практикой, по крайней мере, в моем случае. Поэтому вместо того, чтобы передавать строки в качестве значений в флажки в форме, я решил указать значение идентификатора таблицы.
вот новый код:
<?php
$gettips = mysql_query('SELECT id,body FROM tips WHERE body!="" and approved!="yes" and approved!="no"')or die(mysql_error());
$i=0;
while($tips = mysql_fetch_array($gettips))
{ ?>
<input type="checkbox" name="checkboxes[]" value="<?php print $tips[0] ?>" />
<input type="checkbox" name="checkboxesno[]" value="<?php print $tips[0] ?>" />
<a class="names"> - <span><?php print $tips[1] ?></span></a><br />
<? $i++;
}
?>
и запросы на удаление:
foreach($_POST['checkboxes'] as $check) {
// echo "INSERT INTO approved (body) VALUES ('$check') <br>";
// echo "UPDATE tips SET approved='yes' WHERE body='$check'<br>";
mysql_query("INSERT INTO approved (body) VALUES ('$check') ");
mysql_query("UPDATE tips SET approved='yes' WHERE body='$check'");
}
foreach($_POST['checkboxesno'] as $key) {
// echo "DELETE FROM tips WHERE id=$key <br>";
mysql_query("UPDATE tips SET approved='no' WHERE id=$key");
mysql_query("DELETE FROM tips WHERE id=$key ")or die(mysql_error());
}
Я до сих пор не знаю, почему другой способ не сработал, поэтому, если у кого-то есть шанс объяснить, это было бы здорово!