如何修复引导程序中的删除模式(仅删除第一行)

时间:2019-04-26 09:48:56

标签: php mysql bootstrap-4

我要删除一行时遇到问题,它仅删除第一个行,我正在使用php和bootstrap modal

ajout.php ,此页面是我用ID调用deleteEntreprise.php

$pdo = new PDO('mysql:dbname=test;host=localhost','root','root');

$pdoStat = $pdo->prepare('SELECT * FROM entreprise');

$ExecuteIsOk = $pdoStat->execute();

$entreprises = $pdoStat->fetchAll()


<?php foreach ($entreprises as $entreprise): ?>

  <tbody>
    <tr>
      <td >
        <?= $entreprise['id'] ?>
      </td>
    <td>
      <a href="liste.php?id=<?= $entreprise['id'] ?>" style="text-decoration : none !important; color : white  !important;"><?= $entreprise['nom'] ?></a>
    </td>
    <td>
      <button type="button" class="btn btn-sm btn-danger" data-toggle="modal" data-target="#exampleModal">Supprimer
      </button>
    </td>
  </tbody>

</tr>


<div class="modal fade" id="exampleModal" tabindex="0" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">ATTENTION !</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        Etes-vous sûr(e) de vouloir supprimer le compte ?
      </div>
      <div class="modal-footer">
        <button type="button" class="btn-sm btn-secondary" data-dismiss="modal">Fermer</button>
      <a href="deleteEntreprise.php?id=<?= $entreprise['id'] ?>" class="btn btn-danger btn-sm active" role="button" aria-pressed="true">Supprimer le compte</a>
      </div>
    </div>
  </div>
</div>
<?php endforeach; ?>
</table>

deleteEntreprise.php 删除实体的sql查询

<?php

// Cette fonction permet de supprimer une fiche entreprise de la base données

$entreprise_id = $_GET['id'];

require 'inc/db.php';
$req = $pdo->prepare('SELECT * FROM entreprise WHERE id = ?');
$req->execute([$entreprise_id]);
$user = $req->fetch();
session_start();


    $pdo->prepare('DELETE FROM entreprise WHERE id = ? ')->execute([$entreprise_id]);

    $_SESSION['flash']['success'] = 'Lentreprise a bien été supprimer de la base de données.';
    // $_SESSION['auth'] = $user;
    header('Location: ajout.php');
exit();

希望我能提供足够的信息来帮助解决我的问题。

任何帮助将不胜感激!

谢谢,祝你有美好的一天!

2 个答案:

答案 0 :(得分:0)

代码中的问题之一是,您引用的是在同一ID下创建的所有模式HTML。因此,如果您的PHP循环中有多个项目,您将如何确定应删除哪个ID。

如何在代码<?php foreach ($entreprises as $entreprise): ?>中构造数组$enterprises?您不会显示任何已删除的元素ID的代码。我猜想您正在从各种数据库中读取数据,如果是的话,还是要从数据库中删除有问题的元素,以便在运行PHP时不会返回已删除的元素。

在某些情况下,有时会显示您追求的功能所需的所有代码,可帮助人们为您提供帮助。

答案 1 :(得分:0)

尝试一下:

<table>
  <tbody>

  <?php foreach ($entreprises as $entreprise): ?>

    <tr>
      <td>
        <?= $entreprise['id'] ?>
      </td>
      <td>
        <a href="liste.php?id=<?= $entreprise['id'] ?>" style="text-decoration: none!important; color: white!important;"><?= $entreprise['nom'] ?></a>
      </td>
      <td>
        <a href="#exampleModal<?= $entreprise['id'];?>" class="btn btn-sm btn-danger" data-toggle="modal">Supprimer</a>
      </td>
    </tr>

    <div class="modal fade" id="exampleModal<?= $entreprise['id'];?>" tabindex="0" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
      <div class="modal-dialog" role="document">
        <div class="modal-content">
          <div class="modal-header">
            <h5 class="modal-title" id="exampleModalLabel">ATTENTION !</h5>
            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
              <span aria-hidden="true">&times;</span>
            </button>
          </div>
          <div class="modal-body">
            Etes-vous sûr(e) de vouloir supprimer le compte ?
          </div>
          <div class="modal-footer">
            <button type="button" class="btn-sm btn-secondary" data-dismiss="modal">Fermer</button>
            <a href="deleteEntreprise.php?id=<?= $entreprise['id'] ?>" class="btn btn-danger btn-sm active" role="button" aria-pressed="true">Supprimer le compte</a>
          </div>
        </div>
      </div>
    </div>

  <?php endforeach; ?>

  </tbody>
</table>