2015-10-24 7 views
-1

Пожалуйста, помогите найти, почему сценарий ниже не работает. Вот часть HTML-документа:Как удалить запись из базы данных

<form> 
<table id="prtbl"> 
<caption id='tblname' name='tblname' readonly value='CRC_Users'></caption> 
<tbody> 
<tr> 
<th>Names</th> 
<td><input id='names' name='names' type="text" pattern="[A-Za-z ]{3,12}">  
</td> 
</tr> 
<tr> 
<th>email</th> 
<td><input id='email' name='email' type="email" pattern="[[email protected]_]"> 
</td> 
</tr> 
<tr> 
<th>Course</th> 
<td><input id='course' name='course' type="text" pattern="[A-Za-z ]"></td> 
</tr> 
<tr> 
<th>Project Nu</th> 
<td><input id='aktnu' name='aktnu' type="text" pattern="[0-9]{3,12}"></td> 
</tr> 
</tbody> 
</table> 
<p><i>Delete record Click:</i> 
<input id='deleterec' type="button" value="DELETE"></p> 
<p id='feedback'></p> 
</form> 

Таблица уже существует в базе данных сервера. Я могу ВСТАВИТЬ, ОБНОВИТЬ таблицу. Но я не могу УДАЛИТЬ существующую запись в таблице. Ниже приведен сценарий для удаления:

<script> 
$(document).ready(function() { 
    $("#deleterec").click(function() { 
     var mydata = { 
      tblname : $("#tblname").val(), 
      names : $("#names").val() 
     }; 
     $.post("delete_user.php", mydata, function(data) { 
      if (data == 1){ 
       $("#feedback").text('Staff payroll record deleted'); 
       return;   
      } else { 
       $("#feedback").text('Staff payroll record does not exist in 
       your record'); 
       return; 
      } 
     }); 
    }); 
});  
</script> 

PHP скрипт выглядит следующим образом:

<?php 
$servername = "localhost"; 
$username = "user"; 
$password = "0007"; 
$dbname = "CRCSystems"; 
// Create connection 
$conn = mysqli_connect($servername, $username, $password, $dbname); 
// Check connection 
if (!$conn) { 
    die("Connection failed: " . mysqli_connect_error()); 
} 
$tblname = test_input($_POST["tblname"]); 
$names = test_input($_POST["names"]); 

function test_input($data) { 
    $data = trim($data); 
    $data = stripslashes($data); 
    $data = htmlspecialchars($data); 
    return $data; 
} 

$sql = "SELECT * FROM $tblname WHERE Names = '$names'"; 
if (mysqli_query($conn, $sql)) { 
    $result = mysqli_query($conn, $sql); 
    $row = mysqli_fetch_row($result); 
    if ($row) { 
     $sql = "DELETE * FROM $tblname WHERE Names = '$names'"; 
     echo 1;   //record deleted  
    } else { 
     echo 0;   //record does not exist 
    } 
} 
mysqli_free_result($result); 
mysqli_close($conn); 
?> 

Теперь я осуществил поиск неисправностей & узнал мой PHP скрипт в порядке, по крайней мере до УДАЛИТЬ линии. Я изменил: echo 1; echo $ tblname; в результате получится OK Кроме того, чтобы отобразить $ names, вы получите OK. Так почему же запись не удалена? Хотя я получил ответ, что он был удален. Ценю твою поддержку. Я начинающий.

+2

Изменить 'удалить * из ...' 'для удаления из ...' – zedfoxus

+1

слишком много вопросов, слишком много непринятые. –

+0

Обратите внимание, что я применил предложения в вашей ссылке, и они не работали. Я использовал sqld вместо sql для второго запроса в моем синтаксисе, все тот же результат. Я советую вам внести свой вклад, прежде чем принимать решение о пометке запроса другими. Это не нравится начинающим, как я, за исключением того, что вы сказали, что Stackoverflow предназначен только для высокопроизводительных пользователей –

ответ

2

Синтаксис для удаления является DELETE FROM не DELETE * FROM

$sql = "DELETE FROM $tblname WHERE Names = '$names'"; 
+0

Да, я применил вашу коррекцию плюс другие ниже, и она отлично работает. Я ценю. Ниже приведен правильный скрипт. –

0

Добавить method="post" в форму, потому что по умолчанию это получить.

изменить также:

$sql = "DELETE * FROM $tblname WHERE Names = '$names'"; 

Для

$sql = "DELETE FROM $tblname WHERE Names = '$names'"; 
+1

* "Добавить метод =" сообщение "в вашу форму, потому что по умолчанию это get." * - Он использует '$ .post (" delete_user.php ", mydata, function (data)' –

+0

Мне это не нужно, потому что я Осталось на той же странице. –

2

Вы написали эту

$sql = "DELETE * FROM $tblname WHERE Names = '$names'"; 

Измените запрос

$sql = "DELETE FROM $tblname WHERE Names = '$names'"; 

Но вы не выполнили этот запрос.

Сделайте это, чтобы выполнить запрос.

mysqli_query($conn, $sql) 
+0

Да, я добавил это, и он отлично работает. –

0

Я думаю, вы не отправили запрос DELETE в БД.

и удаление синтаксис запроса должен быть DELETE FROM

Смежные вопросы