2017-04-10 65 views
1

我不想从我的数据库中删除学生数据,但不显示在列表中我已编码从数据库中永久删除任何人都知道删除查询?我想保留删除数据库中的数据

这是我获取代码列表

<?php 

    $query="SELECT id,name,fname,phone FROM student"; 
$resultset=$connection->query($query); 

$count=0; 
while($r=$resultset->fetch_assoc()){ 
    $count++; 
echo "<tr><td>".$count."</td><td><a href='#'>".$r["name"]."</a></td><td>".$r["fname"]."</td><td></td><td><td>".$r["phone"]."</td><td><input type='checkbox' name='chb".$count."' value='".$r["id"]."'></td></tr> 
"; 

} 
?> 

这是我的删除功能的代码

function std_delete($id){ 
    $connection=new mysqli("localhost","root","","sms"); 

$connection->query("delete from student where id=".$id); 


for ($i=1; $i < 100; $i++) { 
    //echo "chb".$i."<br>"; 
    if(isset($_POST["chb".$i])){ 
    std_delete($_POST["chb".$i]); } 
}} 
+2

而不是删除它,更新与国旗的colunn,创下该行设置为无效或隐藏。 – Qirel

+1

尝试设置删除某列时删除某个用户想要删除的内容delete = 1其他明智delete = 0,对于所有其他查询通过删除== 0 –

回答

2

其所谓的软删除;而不是使用删除只需添加一个新的列,如boolean类型的active_ind(活动指示符),并将其删除为false,这样就不会永久删除行。

显示记录时显示active_ind设置为true的记录。确保在插入新记录时将active_ind的值设置为true。

你的样品删除查询将是:

$connection->query("update student set active_ind = false where id=".$id); 
+1

为什么你使用这样一个神秘的名字? '删除'很简单,因为地狱 – user2659982

+0

取决于你选择的列名:)活动指标看起来更合适,因为它是一般性的,并告诉你的记录是否有效。不只是为了删除它:) –