我正在尝试使用ajax / jquery制作动态表。
其他功能,如添加,更新正在运行,但我的删除功能似乎无法正常工作。我正在深入研究这个问题,但没有结果。
以下是从数据库中获取数据并形成表格的代码段。 每行都有更新/删除按钮,这些按钮可以导致相应的功能。
if(mysqli_num_rows($result) > 0)
{
$number = 1;
while($row = mysqli_fetch_assoc($result))
{
$data .= '<tr>
<td>'.$number.'</td>
<td>'.$row['Surname'].'</td>
<td>'.$row['Name'].'</td>
<td>'.$row['Address'].'</td>
<td>'.$row['Telephone'].'</td>
<td>'.$row['PurchaseDate'].'</td>
<td>'.$row['Model'].'</td>
<td>'.$row['SerialNumber'].'</td>
<td>'.$row['Notes'].'</td>
<td>
<button onclick="GetUserDetails('.$row['id'].')" class="btn btn-warning">Update</button>
</td>
<td>
<button onclick="DeleteUser('.$row['id'].')" class="btn btn-danger">Delete</button>
</td>
</tr>';
$number++;
}
}
&#13;
这是我的删除函数,它从其他php接收来自数据库的表的行的id。
删除功能脚本
function DeleteUser(id) {
var conf = confirm("Are you sure, do you really want to delete User?");
if (conf == true) {
$.post("ajax/deleteUser.php", {
id: id
},
function (data, status) {
// reload Users by using readRecords();
readRecords();
}
);
}
}
&#13;
deletefunction php
<?php
// check request
if(isset($_POST['id']) && isset($_POST['id']) != "")
{
// include Database connection file
include("db_connection.php");
// get user id
$client_id = $_POST['id'];
// delete User
$query = "DELETE FROM Clients WHERE id = '$client_id'";
if (!$result = mysqli_query($query)) {
exit(mysqli_error($result));
}
}
?>
&#13;
我甚至尝试进入mysql而不是mysqli,它以某种方式工作。我有点假设mysqli与mysql有不同的功能?好吧,我听说mysql已被弃用,但似乎我在这里做错了...
我不擅长编程,我正在学习,因为它成了我的新爱好。任何提示都会很感激。
答案 0 :(得分:3)
mysqli_*
是面向对象且更加强大的MySQL版本。
您需要将连接ID传递给mysqli_query()
混合mysqli_query(mysqli $ link,string $ query [,int $ resultmode = MYSQLI_STORE_RESULT])
所以,更正后的代码:
if (!$result = mysqli_query($conn, $query)) {
// Where $conn is the connection identifier.
答案 1 :(得分:0)
这个查询最后对我有用。
// delete User
$query = "DELETE FROM Clients WHERE id = '$client_id'";
if (!$result = mysqli_query($GLOBALS["___mysqli_ston"], $query)) {
exit(((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)));
}