php - 为什么 mymysqli 删除按钮不起作用?

标签 php html mysql mysqli

我试图从表中删除一个产品,但它不起作用。 剧本错了吗?我该如何纠正它?

include_once('connection.php');
include_once('functions.php');      
if(isset($_POST['delete'])){
    mysqli_query( $conDB, "DELETE FROM products WHERE  name='$_POST[hidden]'");
};              
$page = (int)(!isset($_GET["page"]) ? 1 : $_GET["page"]);
if ($page <= 0) $page = 1;           
    $per_page = 10; // Set how many records do you want to display per page.             
$startpoint = ($page * $per_page) - $per_page;                  
$statement = "products ORDER BY id DESC";
$results = mysqli_query($conDB, "SELECT * FROM {$statement} LIMIT {$startpoint} , {$per_page}");    
if (mysqli_num_rows($results) != 0) {        
    while ($row = mysqli_fetch_array($results)) {
    $name = $row['name'];
?>
<tr>
    <td align="left" colspan='2' ><big style="color:red" ><b><?php echo $row['name']?></b></big><td>    
</tr>
<tr>
    <td align="left" colspan='2'><big style="color:333333"><b><?php echo $row['category']?></b> / <?php echo $row['subcategory']?></big></td>
</tr>   
<tr>    
    <td style="vertical-align:top" >
       <?php echo "<img border=3 width= 300px  height =250px src=\"products/"  . $row['picture']>?>"<br /> 
</td>
     <td  style="vertical-align:top">   
            <?php echo  nl2br($row['description'])?>
    </td>
</tr>
<tr>
    <td> <input type="hidden" name="hidden" value="$name" ><input type="submit" name="delete" onClick='return confirmDelete()' value='Delete Product'></td>         

当我删除“删除产品”时,确认将显示是否删除它。但在确认之后。它不会从表中删除选定的行。

确认后php没有报错。为什么会发生以及 我该如何解决?

最佳答案

查看隐藏的值,它似乎没有正确地写在标记中:

<input type="hidden" name="hidden" value="$name" >
                                    <!--  ^ literal string, not a variable value -->

应该是:

<input type="hidden" name="hidden" value="<?php echo $name; ?>" />

旁注:既然您已经在使用 mysqli,为什么不使用准备好的语句。

if(isset($_POST['delete'])) {
    $delete = $_POST['delete'];
    $del = $conDB->prepare('DELETE FROM products WHERE name = ?');
    $del->bind_param('s', $delete);
    $del->execute();
}

我建议这样做,删除隐藏的输入并改用它:

<button type="submit" name="delete" onClick='return confirmDelete()' value="<?php echo $row['id']; ?>">Delete Product</button>

关于php - 为什么 mymysqli 删除按钮不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26033557/

相关文章:

javascript - Jquery Ajax 失败...随机成功

PHP 二维数组声明

html - 购买的 joomla 模板在 flash 内容后没有文字

javascript - Chrome View 与打印预览之间的巨大差异

Mysql 模式不断删除表而不采取任何操作

mysql - 启用 MySQL 二进制日志

php - 我想将项目代码从 url 传输到数据库

php - 拉维尔 : Eloquent Skip records

PHP - 将 PDO 与 IN 子句数组一起使用

javascript - 是否有验证器来检查运算符是否已被使用?