Php 用于删除表项的按钮
我想要一个按钮来删除它旁边的表条目。但我的成绩差了。我似乎键入了一些错误的内容,以下是我的尝试:Php 用于删除表项的按钮,php,html,mysql,mysqli,Php,Html,Mysql,Mysqli,我想要一个按钮来删除它旁边的表条目。但我的成绩差了。我似乎键入了一些错误的内容,以下是我的尝试: <td><a href="delete-quote.php?id=<?php echo $row['id'];?>"><button class="btn-danger-dark">Delete</button></a></td> 但它似乎不起作用。我只收到ELSE错误消息 我尝试过一些小的改变,但没有效果。我
<td><a href="delete-quote.php?id=<?php echo $row['id'];?>"><button class="btn-danger-dark">Delete</button></a></td>
但它似乎不起作用。我只收到ELSE错误消息
我尝试过一些小的改变,但没有效果。我很确定我错过了一些小东西
my delete-quote.php代码:
<?php
$id = $_GET['id'];
//Connect DB
// on success delete : redirect the page to original page
$dbname = "siyakhat_ibroker";
$conn = mysqli_connect("localhost", "siyakhat_root", "*****", $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// sql to delete a record
$sql = "DELETE FROM prerequest WHERE id = $id";
if (mysqli_query($conn, $sql)) {
mysqli_close($conn);
header('Location: manage-quotes.php');
exit;
} else {
echo "Error deleting record";
}
?>
更新
我的dbconnect.php
<?php
$mysql_hostname ="localhost";
$mysql_user ="siyakhat_root";
$mysql_password ="****";
$mysql_database ="siyakhat_ibroker";
$prefix = "";
$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die("Could not connect database");
mysql_select_db($mysql_database, $bd) or die("Could not select database");
?>
您是否尝试创建数据库连接 dbCon.php
define('HOST','localhost');
define('USER','root');
define('PASS','your_pass_here');
define('DB','siyakhat_ibroker');
$con = mysqli_connect(HOST,USER,PASS,DB) or die('Unable to Connect to the DB');
那么您的delete-quote.php应该如下所示:
include(dbCon.php);
$id = $_GET['id'];
$action = $_GET['action'];
$tableName = 'prerequest';
if($action=='delete'){
//deleting row
$sql = "DELETE FROM $tableName WHERE id='$id'";
$r = mysqli_query($con,$sql);
if($r){
$status="success";
//assuming this file is in your root folder
header('Location: manage-quotes.php');
}else{
$status="error ".mysqli_error($con) . ": " . mysqli_error($con);
}
echo $status;
}mysqli_close($con);
然后调用它:deletequote.php?id=1&action=delete
我建议您在按钮中使用动态用法(如Ajax调用),而不是静态用法,方法是使用jQuery创建onClick事件,并使用Ajax调用动态删除行
希望它能起作用。
干杯您是否尝试创建数据库连接 dbCon.php
define('HOST','localhost');
define('USER','root');
define('PASS','your_pass_here');
define('DB','siyakhat_ibroker');
$con = mysqli_connect(HOST,USER,PASS,DB) or die('Unable to Connect to the DB');
那么您的delete-quote.php应该如下所示:
include(dbCon.php);
$id = $_GET['id'];
$action = $_GET['action'];
$tableName = 'prerequest';
if($action=='delete'){
//deleting row
$sql = "DELETE FROM $tableName WHERE id='$id'";
$r = mysqli_query($con,$sql);
if($r){
$status="success";
//assuming this file is in your root folder
header('Location: manage-quotes.php');
}else{
$status="error ".mysqli_error($con) . ": " . mysqli_error($con);
}
echo $status;
}mysqli_close($con);
然后调用它:deletequote.php?id=1&action=delete
我建议您在按钮中使用动态用法(如Ajax调用),而不是静态用法,方法是使用jQuery创建onClick事件,并使用Ajax调用动态删除行
希望它能起作用。
delete-quote.php中的Cheers替换“$sql”,如下所示:
$sql = "DELETE FROM prerequest WHERE id = '".$id."'";
从delete-quote.php替换“$sql”,如下所示:
$sql = "DELETE FROM prerequest WHERE id = '".$id."'";
只要使用这个解决方案
<?php
$servername = "localhost";
$username = "siyakhat_root";
$password = "";
$dbname = "siyakhat_ibroker";
$id = isset($_GET['id']) ? $_GET['id'] : '';
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// sql to delete a record
$sql = "DELETE FROM prerequest WHERE id = $id";
if ($conn->query($sql)) {
mysqli_close($conn);
header('Location: manage-quotes.php');
exit;
} else {
echo "Error deleting record";
}
?>
只需使用此解决方案即可
<?php
$servername = "localhost";
$username = "siyakhat_root";
$password = "";
$dbname = "siyakhat_ibroker";
$id = isset($_GET['id']) ? $_GET['id'] : '';
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// sql to delete a record
$sql = "DELETE FROM prerequest WHERE id = $id";
if ($conn->query($sql)) {
mysqli_close($conn);
header('Location: manage-quotes.php');
exit;
} else {
echo "Error deleting record";
}
?>
注意:mysqli
的面向对象接口大大减少了冗余,使代码更易于阅读和审核,并且不容易与过时的mysql\u查询
接口混淆。在你对程序性风格投入太多之前,值得换一种。示例:$db=new mysqli(…)
和$db->prepare(“…”)
过程接口是PHP 4时代引入mysqli
API时的产物,不应在新代码中使用。警告:使用mysqli
时,应使用并将用户数据添加到查询中。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。切勿将$\u POST
、$\u GET
或任何用户数据直接放入查询中,如果有人试图利用您的错误进行攻击,这可能非常有害。您还需要避免使用GET进行删除请求。一些浏览器插件可以预取这样的链接,导致意外的结果,例如删除整个数据库。为什么
中有
?请尝试将?id=*作为url查询字符串中的get参数传入。注:mysqli
的面向对象接口明显不那么详细,使代码更易于阅读和审核,并且不容易与过时的mysql\u查询
接口混淆。在你对程序性风格投入太多之前,值得换一种。示例:$db=new mysqli(…)
和$db->prepare(“…”)
过程接口是PHP 4时代引入mysqli
API时的产物,不应在新代码中使用。警告:使用mysqli
时,应使用并将用户数据添加到查询中。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。切勿将$\u POST
、$\u GET
或任何用户数据直接放入查询中,如果有人试图利用您的错误进行攻击,这可能非常有害。您还需要避免使用GET进行删除请求。某些浏览器插件可以预取这样的链接,从而导致意外的结果,例如删除整个数据库。为什么
中有
?请尝试将?id=*作为url查询字符串中的get参数传入。是否启用了sqli扩展名?你能试着检查一下你是否已经启用了它吗?请分享你的错误日志。我已经用mysqli_error更新了脚本以查看错误。我想我可能是把按钮弄错了<代码>是的,删除后您有一个未关闭的>…请使用此选项谢谢,先生,请查看上面的my dbconnection.php,并查看这是否会导致您的delete-quote.phpdo启用sqli扩展?你能试着检查一下你是否已经启用了它吗?请分享你的错误日志。我已经用mysqli_error更新了脚本以查看错误。我想我可能是把按钮弄错了
是的,删除后您有一个未关闭的>…请使用此选项,谢谢先生,请查看上面的my dbconnection.php,并查看这是否导致您的delete-quote.php出现问题