удалить из базы данных не работает - PullRequest
0 голосов
/ 08 июля 2011
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#load').hide();
});

$(function() {
$(".delete").click(function() {
$('#load').fadeIn();
var commentContainer = $(this).parent();
var id = $(this).attr("id");
var string = 'id='+ id ;

$.ajax({
   type: "POST",
   url: "delete.php",
   data: string,
   cache: false,
   success: function(){
    commentContainer.slideUp('slow', function() {$(this).remove();});
    $('#load').fadeOut();
  }

 });

return false;
    });
});


</script>



<?php

include('config.php');
$sql=mysql_query("SELECT * FROM messages ORDER BY mes_id DESC LIMIT 20");
while($row=mysql_fetch_array($sql))
        {
        $msgID= $row['mes_id'];
        $msg= $row['msg'];

?>

<div id="<?php echo $msgID; ?>"  align="left" class="message_box" >
<span class="number"><?php echo $msgID; ?></span><?php echo $msg; ?> 
 <a href="delete.php" class="delete">x</a>
</div>

<?php
}

?>

Я кодировал это, чтобы показать записи из базы данных и кнопку удаления, чтобы показать в каждом divdelete.php содержит код

<?php 
include('config.php');
echo $id=$_REQUEST['msgID'];
$sql="delete from messages where mes_id='$id'";
$res=mysql_query($sql) or die(mysql_error());

?>

, но он не работает.Я не могу удалить запись из базы данных ..

Ответы [ 5 ]

2 голосов
/ 08 июля 2011

проверьте ваш запрос var_dump($_REQUEST) вы отправляете var string = 'id='+ id ; и пытаетесь получить $_REQUEST['msgID'] просто измените на $_REQUEST['id']

1 голос
/ 08 июля 2011

На первый взгляд, я думаю, вы хотите изменить эту строку:

var id = $(this).attr("id");

Into:

var id = $(commentContainer).attr("id");

Поскольку this относится к нажатой ссылке, которая не имеетатрибут id.

В delete.php вы ищете $_REQUEST['msgID'], но при отправке запроса вы используете id (не msgID), поэтому вам необходимо изменить его насовпадают.

1 голос
/ 08 июля 2011

В дополнение к ответу Subdiggers, хороший потенциал для SQL-инъекции , см .: http://php.net/manual/en/security.database.sql-injection.php

0 голосов
/ 08 июля 2011

Остерегайтесь SQL-инъекций!Используйте intval для $ id перед тем, как вставить его в свой запрос, чтобы убедиться, что это целое число.

0 голосов
/ 08 июля 2011

Ваши данные неверны: вместо:

data: string,

Где строка:

var string = 'id='+ id ;

Данные должны быть в парах ключ / значение.итак:

data: msgID : id

Я сделал это в msgID, потому что ваш $_REQUEST['msgID'] вызывает msgID.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...