По какой-то причине JavaScript/PHP не удалит мои данные из MySQL! Вот краткое изложение проблемы.PHP не будет удаляться из MySQL
У меня есть массив, который отображает все мои записи MySQL в хорошем формате, с кнопкой, чтобы удалить запись для каждого из них в отдельности. Это выглядит следующим образом:
<?php
include("login.php");
//connection to the database
$dbhandle = mysql_connect($hostname, $username, $password)
or die("<br/><h1>Unable to connect to MySQL, please contact support at [email protected]</h1>");
//select a database to work with
$selected = mysql_select_db($dbname, $dbhandle)
or die("Could not select database.");
//execute the SQL query and return records
if (!$result = mysql_query("SELECT `id`, `url` FROM `videos`"))
echo 'mysql error: '.mysql_error();
//fetch tha data from the database
while ($row = mysql_fetch_array($result)) {
?>
<div class="video"><a class="<?php echo $row{'id'}; ?>" href="http://www.youtube.com/watch?v=<?php echo $row{'url'}; ?>">http://www.youtube.com/watch?v=<?php echo $row{'url'}; ?></a><a class="del" href="javascript:confirmation(<? echo $row['id']; ?>)">delete</a></div>
<?php }
//close the connection
mysql_close($dbhandle);
?>
Кнопка удаления имеет HREF из javascript:confirmation(<? echo $row['id']; ?>)
, так как только вы нажмете на удаление, она работает следующим образом:
<script type="text/javascript">
<!--
function confirmation(ID) {
var answer = confirm("Are you sure you want to delete this video?")
if (answer){
alert("Entry Deleted")
window.location = "delete.php?id="+ID;
}
else{
alert("No action taken")
}
}
//-->
</script>
JavaScript должен теоретически передать «ID» на page delete.php. Эта страница выглядит следующим образом (и я думаю, что это где проблема):
<?php
include ("login.php");
mysql_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");
mysql_select_db ($dbname)
or die("Unable to connect to database");
mysql_query("DELETE FROM `videos` WHERE `videos`.`id` ='.$id.'");
echo ("Video has been deleted.");
?>
Если есть кто-то там, что может знать ответ на этот вопрос, я бы очень признателен. Я также открыт для предложений (для тех, кто не уверен).
Спасибо!
Попробуйте некоторые простые методы отладки: выведите ID из файла delete.php, чтобы узнать, получено ли оно, как вы ожидали. – harto
+1 для подробного исходного кода и хорошо написанного вопроса. – MitMaro
@harto: Да, я обычно делал это, но я был так расстроен, что даже не передумал. Это было завязано со мной в течение 30 минут! @MitMaro: Спасибо! Я ценю это, и я надеюсь, что другие читатели могут что-то узнать из этого вопроса. –