php - 显示表格并提供删除选项

标签 php mysql

我希望每个人都能看到我的表的条目,并且有可能删除一行,

如您所见,我希望用户可以单击删除并将其从数据库中删除:)

这是我目前所得到的:

function editRooster() {
    if(isset($_POST['submit'])) {   
        if(isset($_POST['delete_id'])) {
        $delete_id = mysql_real_escape_string($_POST['delete_id']);
        mysql_query("DELETE FROM event WHERE `id`=".$delete_id);
        header('Location: dashboard.php');
        }
    }
    else {

    echo '<h1><a href="dashboard.php">Het terras</a> &rsaquo; <a href="dashboard.php?app=mysql">Roosters</a> &rsaquo; <a href="dashboard.php?app=mysql&action=editrooster">Wijzigen</a></h1>';
        $connection = mysqlConnect();

 // Find out how many items are in the table
    $total = $connection->query('SELECT COUNT(*) FROM intranet_users')->fetchColumn();

    // How many items to list per page
    $limit = 20;

    // How many pages will there be
    $pages = ceil($total / $limit);

    // What page are we currently on?
    $page = min($pages, filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT, array(
        'options' => array(
            'default'   => 1,
            'min_range' => 1,
        ),
    )));

    // Calculate the offset for the query
    $offset = ($page - 1)  * $limit;

    // Some information to display to the user
    $start = $offset + 1;
    $end = min(($offset + $limit), $total);

    // The "back" link
    $prevlink = ($page > 1) ? '<a href="?app=users&page=1" title="Eerste pagina">&laquo;</a> <a href="?app=users&page=' . ($page - 1) . '" title="Vorige pagina">&lsaquo;</a>' : '<span class="disabled">&laquo;</span> <span class="disabled">&lsaquo;</span>';

    // The "forward" link
    $nextlink = ($page < $pages) ? '<a href="?app=users&page=' . ($page + 1) . '" title="Volgende pagina">&rsaquo;</a> <a href="?app=users&page=' . $pages . '" title="Laaste pagina">&raquo;</a>' : '<span class="disabled">&rsaquo;</span> <span class="disabled">&raquo;</span>';

    // Prepare the paged query
    $stmt = $connection->prepare('SELECT * FROM event ORDER BY id LIMIT :limit OFFSET :offset');

    // Bind the query params
    $stmt->bindParam(':limit', $limit, PDO:: PARAM_INT);
    $stmt->bindParam(':offset', $offset, PDO:: PARAM_INT);
    $stmt->execute();

    // Do we have any results?
    if ($stmt->rowCount() > 0) {
        // Define how we want to fetch the results
        $stmt->setFetchMode(PDO::FETCH_ASSOC);
        $iterator = new IteratorIterator($stmt);

        // Display the results
        echo '<table><thead><td>ID:</td><td>Voornaam:</td><td>Datum</td><td>Vanaf</td><td>Tot</td><td>Omschrijving</td><td>Wijzig</td><td>Verwijder</td></thead>';
        foreach ($iterator as $row) {
            echo '<tr><td>';
            echo $row['id'];
            echo '<td>';
            echo $row['firstname'];
            echo '</td><td>';
            echo (new \DateTime($row['date']))->format('d-m-Y');
            echo '</td><td>';
            echo $row['begintijd'];
            echo '</td><td>';

        echo $row['eindtijd'];
        echo '</td><td>';
        echo $row['omschrijving'];
        echo '</td><td>';
        echo '<input type="submit" value="Edit">';
        echo '</td><td>';
        echo '<form method="post">';
        echo '<input type="hidden" name="delete_id" value="'.$row['id'].'" />';
        echo '<input type="submit" value="Delete">';
        echo '</form>'; 

    }
    echo '</table>';
}
} 
}

抱歉,函数太长了,但我不知道哪里出了问题,所以我必须发布整个函数。请原谅我的长代码:)

最佳答案

您的$connection 是一个 PDO 对象。

尝试以这种方式调用您的删除查询:

$query = "DELETE FROM event WHERE id=?";
$stmt = $connection->prepare($query);
$stmt->bindParam(1, $delete_id);
$stmt->execute();

您也不需要使用 mysql_real_escape_string() 转义 $delete_id 的值,因为它是一个准备好的语句。

(在 PHP 聊天室中进行调试讨论后写的答案)。

关于php - 显示表格并提供删除选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29562014/

相关文章:

php - 连接 MySQL 和 Android

php - 为什么这个 JS 变量在我的 PHP 中工作

php - 无法在 PHP 7 中安装 PDO(冲突)

php - MySQL:where(如果存在除 0 之外的值 - 选择值;否则,选择 0)

mysql - 在 Laravel 中使用谷歌地图和 mysql 进行半径搜索

php - 我应该选择 mysql 中的哪种数据类型来保存使用 PHP 的 javascript 代码?

php - 遍历多维数组

php - 托管时是否必须在 select 语句中指定数据库名称?

mysql - XAMPP - MySQL 没有端口号 - 无法连接

java - 当 mysql 连接器位于同一项目中时,如何从命令行运行连接数据库的 Java 程序?