2013-01-20 40 views
3
function remove_directory($directory) { 
     if (is_dir($directory) === true) { 
      $contents = scandir($directory); 
      unset($contents[0], $contents[1]); 

      foreach($contents as $object) { 
       $current_object = $directory.'/'.$object; 
       if (filetype($current_object) === 'dir') { 
        remove_directory($current_object); 
        } else { 
        unlink($current_object);  
        } 
       } 
       rmdir($directory); 
      } 
     } 

    function delete_row($filecode) { 
     $filecode = mysql_real_escape_string($filecode); 

     mysql_query("DELETE FROM `files` WHERE `code` = '$filecode'"); 

     } 
      $query = mysql_query("SELECT `id`, `username`, `title`, LEFT(`description`, 90) as `description`, `code`, `type`, `size`, `date` FROM `files` WHERE `username` = '$userfile' ORDER BY id DESC LIMIT $start, $per_page"); 

     while ($query_row = mysql_fetch_assoc($query)) { 
      $fileuser = $query_row['username']; 
      $filetitle = $query_row['title']; 
      $filecode = $query_row['code']; 
      $filedesc = $query_row['description']; 
      $filesize = $query_row['size']; 
      $filedate = $query_row['date']; 
      $filetype = $query_row['type']; 

      if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['dir'])) { 
      $dir = basename($_POST['dir']); 
      if ($dir[0] != '.') 
      remove_directory("files/$dir"); //these function work good and delete only one folder when I click Delete button 
      delete_row($filecode); //these function delete me all row in database in first page when I click in second page delete button too what the .... I am so angry i cant believe what is happend it's gone my database 

     } 

     if (empty($filedesc) === false) { 
     echo '<div id="linkstyle"><strong><a href="http://localhost/edu/1111111111111/userdownload.php?code='. $filecode . ' ">' , $filetitle , '</a></strong></div> <div id="displayfiledesc">' , $filedesc , '...</div><div id="displayfiledate"> &#149; ' , formatBytes($filesize) , ' &#149; ' , $filedate , ' &#149; ' , $filetype , '</div>';?> 

     <form action="" method="post"> 
      <input type="hidden" name="dir" value="<?= $filecode?>"> 
      <input type="submit" name="delete" id="bdelete" value="Delete"><br><br> 
     </form> 

     <?php 
     } else { 
     echo '<div id="linkstyle"> <strong><a href="http://localhost/edu/1111111111111/userdownload.php?code='. $filecode . ' ">' , $filetitle , '</a></strong></div> <div id="displayfiledate"> &#149; ' , formatBytes($filesize) , ' &#149; ' , $filedate , ' &#149; ' , $filetype , '</div>';?> 

     <form action="" method="post"> 
      <input type="hidden" name="dir" value="<?= $filecode?>"> 
      <input type="submit" name="delete" id="bdelete" value="Delete"><br><br> 
     </form> 

我的问题太大了。当我点击删除按钮,我希望它是从我的MySQL数据库删除一个文件夹和一行,但没有它删除一个文件夹和mysql数据库中的所有行在第一页,我可以看到删除按钮。我能理解的问题在哪里?有人能帮助我吗?php删除文件夹,从mysql数据库删除一行提交删除按钮

回答

1

您在循环中调用delete_row(),该循环遍历SELECT ... FROM files WHERE username = '$userfile'的结果集,该结果集仅受LIMIT子句的限制。

虽然remove_directory()也在该循环中重复调用,但始终使用相同的参数调用它:'files/'.basename($_POST['dir'])

+0

谢谢大家。我认为8小时,我继续想,但它是如此简单... – user1929805

+0

Offf,但现在它是从MySQL数据库删除我一行它是非常好的,但也删除我也一样点击两个文件夹 - 点击按钮文件夹,然后文件夹...现在有什么问题 – user1929805

+1

@ user1929805:我不知道。我看不到您的修改代码。 – eggyal