使用javascript从数据库中删除

dpiehjr4  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(310)

我有一个包含所有行和列的数据库表的页面。我要做的是选择所有我想要的行,然后在我点击按钮时删除它们。
到目前为止,我在table.php页面中做了以下工作:

<?php 
include "config.php";  //connection to database 
incude "home.js"; 
$funcao="Select * from  palavras";
$result=mysqli_query($link, $funcao);
?>

 <button id="button_apaga" type="button" onclick="delete()" > DELETE </button>      

 <?php  if($result->num_rows > 0)  { ?>

  <table class="table">
      <tr>
          <th>IdPalavra</th>
          <th>Palavra</th>
          <th>Grau de Dificuldade</th>
          <th>Data</th>
          <th>Hora</th>
          <th>Selecionar</th>
      </tr>

    <?php while($row = mysqli_fetch_assoc($result)) { ?>

      <tr role="row">
        <td><?php echo $row['idpalavras']; ?></td>       
        <td><?php echo $row['palavra']; ?></td>
        <td><?php echo $row['graudificuldade']; ?></td>
        <td><?php echo $row['data']; ?></td>
        <td><?php echo $row['hora']; ?></td>
        <td><input type="checkbox" name="check" id="checkbox" /></td>
      </tr>
    <?php } ?>   
      </table> 

    <?php }
    else{
        echo "0 resultados";
    } ?>

javascript页面(home.js):

function delete(id){
    var check = document.getElementById('checkbox');
    if(check.checked) {
        // sql query 
    }

我的问题是,考虑到sql查询在不同的页面中,如何执行它。我能打开php把查询放进去吗?
另外,如何从函数的选定行接收所有ID?先谢谢你。

zy1mlcev

zy1mlcev1#

一种方法是使用ajax。为了压缩代码,我还将把jquery合并到这个解决方案中。我还打算把你的复选框改成一个单独的按钮链接,这样代码就少了一点。一个同时删除多个文件的解决方案可能与此类似,但是由于您使用的是ajax,这对您的用户来说将更容易。
修改 table.php ```

<?php while($row = mysqli_fetch_assoc($result)) { ?>

  <tr role="row" class="palavras_row">
    <td><?php echo $row['idpalavras']; ?></td>       
    <td><?php echo $row['palavra']; ?></td>
    <td><?php echo $row['graudificuldade']; ?></td>
    <td><?php echo $row['data']; ?></td>
    <td><?php echo $row['hora']; ?></td>
    <td><a href="javascript:void(0);" class="palavras_delete" data-id="<?php echo $row['idpalavras']; ?>">Delete</a></td>
  </tr>
<?php } ?>   
  </table> 
在与您的文件夹相同的文件夹中创建新文件 `table.php` 说出它的名字 `delete.php` ```
<?php
$idpalavras = filter_input(INPUT_POST, 'idpalavras', FILTER_SANITIZE_NUMBER_INT);
$success = false;
if ($idpalavras) {
    include "config.php";  //connection to database 
    $funcao="delete from palavras where idpalavras = " . $idpalavras;
    $result=mysqli_query($link, $funcao);
    $success = true;
}
header('Content-Type: application/json');
echo json_encode(array('success' => $success));

上面的解决方案向php后端发送一个简单的命令,php可以在那里运行delete查询。不能直接从javascript运行mysql命令,因为这是前端代码。
此代码是一个功能解决方案,但它是缩写的;一个更完整的解决方案将对潜在错误进行更详细的处理(通过ajax或处理delete查询)。你的电脑上也应该有一些安全措施 delete.php 确保未经授权的用户无法在没有适当权限的情况下删除记录。

相关问题