2015-02-24 34 views
0

首先,我知道这是错误的。我只是不知道解决方法或如何实施它。PHP + MySQL while()while()只会从数据库中删除第一个结果

这是我的代码:

$description_query = "SELECT * FROM documents WHERE owner = '".$_SESSION['username']."' AND id = '".$deletefileid."'"; 
$description = mysql_query($description_query, $connection) or die(mysql_error()); 

$description_files_query = "SELECT filename FROM documents_files WHERE besitzer = '".$_SESSION['username']."' AND vertrag_id = '".$deletefileid."'"; 
$description_files = mysql_query($description_files_query, $connection) or die(mysql_error()); 

while($row = mysql_fetch_array($description_files)) 
{ 
    while($row1 = mysql_fetch_array($description)) 
    { 

     if (!is_dir('./docs/archiv/'.$row1['vertragsnummer'])) { 
      mkdir('./docs/archiv/'.$row1['vertragsnummer']);   
     } 

     $filename = './docs/'.str_replace("./docs/", "", $value); 
     $newfilename = './docs/archiv/'.$row1['vertragsnummer'].'/'.str_replace("./docs/", "", $value); 
     rename($filename, $newfilename); 

    } 

} 

现在代码首先选择有关条目的信息,然后移动这些文件,但如果一个以上的文件,它的动作只有在结果中的第一个。

这是因为第一次,因为它总是只选择一个条目,然后停止从顶部工作。

我该如何解决这个问题?真的很困惑。

感谢

+0

什么你想达到什么目的? – Bang 2015-02-24 13:40:54

+0

你需要做'mysql_data_seek($ description,0)'while whiles – 2015-02-24 13:42:11

+0

我想删除与数据库中某个条目相关的所有文件。 – Doe 2015-02-24 13:43:30

回答

0

可以消除在做数据库的连接复制田地:

$description_query = "SELECT * FROM documents d inner join documents_files df on (d.id = df.vertrag_id) WHERE d.owner = '".$_SESSION['username']."' AND d.id = '".$deletefileid."'"; 
+0

我见过这个地方,谢谢。我的问题是我现在应该如何正确实施它? $ row ['']不起作用。但是,谢谢你已经! – Doe 2015-02-24 13:47:46

+0

我觉得这个提示应该足以让你开始。请做出一些努力。 (你将有一个$查询和一个$ row,其他的几乎都是一样的)。如果您无法获得SQL联接工作,请创建一个新帖子以提出有关该问题的更多问题。祝你好运 – bpgergo 2015-02-24 13:58:32

+1

是的,我努力了。非常感谢。 – Doe 2015-02-25 09:33:44

相关问题