2013-06-21 2 views
-2

У меня есть таблица в базе данных mshop2 с именем userdb. Он имеет столбцы:Попытка удалить таблицу из базы данных с помощью php-файла

  • ID
  • имя
  • имя пользователя
  • пароль
  • электронной

Мой файл JS со всеми функциями, хранящихся в них назван mshop2.script, где я также сохраняю функцию deleteUser, которая будет переходить к файлу с именем deleteUser.php

Файл, в котором я хочу код для запуска на это admin.php и Он получил их в ней написано:

<font color="white">Deletion - ID</font> 
<input class="test1" type="text" id="txUserid" value=""> 
<input class="test2" name="Submit" type="submit" value="" id="submit" 
     onClick='deleteUser();txUserid.value="";'/> 

слова «вход класс» только собирается соответствовать папку с изображениями в соответствии с моим CSS чтобы показать изображение, которое я хочу, чтобы код работал, когда я нажимаю на него, поэтому не против. я включил эти строки в голове моей .php файла:

<script src='jquery.js'></script> 
<script src='mshop2.script.js'></script> 

я написал это на моем mshop2.script.js файле:

function deleteUser(){ 
    var userid = $('#txUserid').val(); 
    var finalData = { 
     uid: userid 
    }; 

    $.post('deleteUser.php', finalData, function(resp){ 
     if(resp == 'success'){ 
      alert('User successfully deleted.'); 
      getUserList(); 
     } 
    }); 
} 

Это содержимое моего deleteUser .php файл:

<?php 
    include 'config.php'; 

    $id = mysql_real_escape_string($_POST["userid"]); 
    $q = "DELETE FROM userdb WHERE ID = '$uid'"; 

    if(!mysql_query($q, $con)){ 
     die('Error: ' . mysql_error()); 
     echo mysql_error(); 
    }else{ 
     echo 'success'; 
    } 

    mysql_close($con); 
?> 

ничего не происходит, и если я вхожу «1» в текстовое поле или любое число от 1 до 5 согласующий линии в моей таблице в базе данных с тем же идентификатором, что я поступил не будет получить de leted.

Что не так с моим кодом?

+0

[** Пожалуйста, не используйте '' * mysql_ функции в новом коде **] (http://bit.ly/phpmsql). Они больше не поддерживаются [и официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). См. [** красное поле **] (http://j.mp/Te9zIL)? Узнайте о [* подготовленных операторах *] (http://j.mp/T9hLWi) и используйте [PDO] (http://php.net/pdo) или [MySQLi] (http://php.net/ mysqli) - [эта статья] (http://j.mp/QEx8IB) поможет вам решить, какой из них. Если вы выберете PDO, [здесь хороший учебник] (http://www.brightmeup.info/article.php?a_id=2). – Fracsi

ответ

0

У вас была перепутанная переменная, и это путало u.

В коде сценария, вы прошли uid со значением userid И вы получаете доступ к неправильно переменная в deleteUser.php

Вместо mysql_real_escape_string($_POST['userid']);

изменение mysql_real_escape_string($_POST['uid']);

И в запросе , просто измените переменную $uid на $id

Просто используйте аа подобную переменную к тому, что вы прошли в сценарии, так что это не будет трудно с вашей стороны, чтобы увидеть общие ошибки

EDIT ::: Попробуйте Удалить событие OnClick на вашем HTML код

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> 

<script> 
    $(document).ready(function() { 
      $(".test2").click(function() { 
       var id = $("#tsUserid").val(); 
       $.post("deletUser.php", { id: id }, function(data) { 
        alert(data); 
       }); 
      }); 
    }); 
</script> 

РНР будет вашим deleteUser.php и просто

изменение mysql_real_escape_string($_POST['userid']);

в mysql_real_escape_string($_POST['id']);

и ваш запрос в $q = "DELETE FROM userdb WHERE ID = '$id'";

Надеются, что это помогает.

+0

сделал это и ничего не произошло :( –

+0

Попробуйте, что я отредактировал, потому что я знаю, что вы передаете также своей функции пустое значение. –

+0

oh wow it work !! Спасибо, пожалуйста, объясните мне пожалуйста что вы там сделали?: D Мне бы очень хотелось узнать о том, что вы там сделали: D, но также, у меня есть эти две другие кнопки, которые обновляют и добавляют новых пользователей, и это даст сообщение об успехе независимо от того, какую кнопку я нажимаю, например, если моя новая кнопка создает сообщение «успешно добавлено пользователем», сообщение «success» от deleteUser будет находиться в фоновом режиме:/и даже если я введу удаленный идентификатор в текстовое поле, он все равно будет скажем, «успех» –

1

Изменить это: -

$q = "DELETE FROM userdb WHERE ID = '$uid'"; 

в

$q = "DELETE FROM userdb WHERE ID = '$id'"; 

Вы улавливают значение в переменной $ ID и использовать $ UID в операторе SQL, что причина ее не работает.

+0

все еще не работает. Я изменил: - $ q = "DELETE FROM userdb WHERE ID = '$ uid'"; в $ q = "DELETE FROM userdb WHERE ID = '$ id'"; и ничего не произошло, также я попытался изменить var finalData = { uid: userid }; в var finalData = { id: userid }; и ничего не произошло –

1

в jq in размещены uid.

изменить сообщение для

$uid = mysql_real_escape_string($_POST["uid"]);