php - 按 id 从数据库中删除行

标签 php mysql

嗨,我在从数据库中删除数据时遇到问题

这是我的代码:确认

    function confirm_delete_mat(materials_id, materials_header)
{
    if(confirm('Are You Sure you want to delete page:\n' + materials_header + ' ?'))
    {
        location.href = '../pages/materials/materials_delete.php?pid=' + materials_id;
    }
} 

它会转到包含此代码的删除页面并调用删除函数:

$pid = delete_material($materials_id); 

if($pid == false)
{
    die('Problem Deleting Page');
}
else
{
    //header('location: pages_list.php');
    die();
}

当然还有一个函数本身:

function delete_material($materials_id)
{
    global $db;

    try
    {
        $sql = "DELETE FROM materials WHERE materials_id = :materials_id LIMIT 1";      
        $stmt = $db->prepare($sql);

        $stmt->bindParam(':materials_id', $materials_id, PDO::PARAM_INT);

        return $stmt->execute();
    }
    catch(Exception $e) 
    {
       return false;
    }   
}

显示数据库中元素的循环。

foreach($materials as $mat_key => $mat_val)
        {   

            echo '<section class="wrapper_matrls">';
            echo '<ul>';
            echo '<li>';
            echo '<div class="mat_header"> <h3> '.$mat_val['materials_header'].' </h3> </div>'; 
            echo '<p>';
            echo '<img src="../../images/'.$mat_val['materials_src'].'" alt="" title="" />';
            echo $mat_val['materials_text'];                
            echo '</p>';
            echo '</li>';
            echo '</ul>';
            echo '</section>';
            echo $materials_id = $mat_val['materials_id'];
            echo $materials_header = $mat_val['materials_header'];
            echo '<a href="javascript:confirm_delete_mat('.$materials_id.', \''.$materials_header.'\')" class="">Delete This page</a>';

        }

我设法向表中添加新元素,但无法删除它 请提供任何帮助。

谢谢

<小时/>

插入数据

哦,好吧 这就是按钮

echo '<li><a style="color:#f00" href="../pages/materials/materials_insert.php" onClick="window.location.href=window.location.href ">Add New Page</a></li>';

这就是一个函数

function insert_materials()
{
    global $db;

    try
    {
        $sql = "INSERT INTO materials 
        (   materials_header, materials_order, materials_src , materials_text) 
         VALUES 
        ('New Header', 1000 , 'gallery/small/1435238385.jpg', 'enter text'  )";     

        $stmt = $db->prepare($sql);

        if( $stmt->execute() == false )
        return false;
        else
        return 
        $db->lastInsertId();

    }
    catch(Exception $e) 
    {
       //ERROR - function returns FALSE
       return false;
    }   
}

最佳答案

您必须使用删除页面上的 javascript 链接中的 GET 参数(此处未设置 $materials_id):

$pid = delete_material($_GET["pid"]);

关于php - 按 id 从数据库中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32123075/

相关文章:

PHP 不插入 MySQL 数据库,所有语句都在那里

mysql - 同时选择该字段的最小日期和最大日期

mysql - 奇怪的 MySQL 触发器行为

mysql - 在mysql中为一组行创建 View

mysql - 错误 : Inserting values from other table via variable

javascript - 更改表单提交上的单选按钮 'checked' 属性

javascript - 如何将猫头鹰轮播添加到首页

java - 在数据库中为用户和消息之间的 OneToMany 关系创建 NULL 值

php - PHP的addslashes和mysql(i)_escape_string有什么区别?

php - 警告 : dbx: module 'mssql' not loaded