Jump to content
Sarinha

Comparar pastas discos com os campos da tabela

Recommended Posts

Sarinha

Olá,

Eu gostava de saber, se tem como alguém e ajudar.

Eu tenho uma base de dados, onde tem nessa base de dados tem varias tabelas, a tabela que eu estou a usar é a tb_prjects.

E tenho também uma pasta no meu computador com varias pastas dentro, a que estou a utilizar é a pasta cli e dentro tou a usar a pasta idCli1.

O que eu quero fazer é o seguinte comparar as pastas que são dentro do idCli1 com a o campo da ProjectName que está dentro da tabela tb_project.

o que eu já fiz foi o seguinte:

-> Ir a base de dados buscar os nomes da campo projectName:

include "connect.php";

$query = "SELECT * FROM tb_projects WHERE statusProject = 0 and projectName like 'p%'"; 
$result = mysql_query($query);

while($row=mysql_fetch_assoc($result)) 
{
echo "<br/> Nome - ".$row['projectName'];
}

-> Ir a pasta idCli1 e listar os nomes das pastas dentro da mesma:

function listFolderFiles($dir)
{ 
$ffs = scandir($dir); 
foreach($ffs as $ff)
{ 
if($ff != '.' && $ff != '..')
{ 
if(!is_dir($dir.'/'.$ff))
{ 

} 
else 
{ 
echo '<br/>pasta - ' . $ff; 
} 
} 
}
} 
listFolderFiles('../../www/m7tv/cli/idCli_1');

Agora o que eu quero é comprar os nomes das pastas com os nomes dos campos da tabela e se o nome da primeira pasta não existir na base de dados apaga a pasta toda, senao se existir passa para a segunda e vai percurre a base de dados toda, até a ultima pasta.

Será que me podem ajudar?

Obrigada, fico muito agradecida.

Edited by brunoais
geshi

Share this post


Link to post
Share on other sites
HappyHippyHippo
// http://stackoverflow.com/questions/1407338/a-recursive-remove-directory-function-for-php
function destroy_dir($dir) { 
 if (!is_dir($dir) || is_link($dir)) return unlink($dir); 
   foreach (scandir($dir) as $file) { 
     if ($file == '.' || $file == '..') continue; 
     if (!destroy_dir($dir . DIRECTORY_SEPARATOR . $file)) { 
       chmod($dir . DIRECTORY_SEPARATOR . $file, 0777); 
       if (!destroy_dir($dir . DIRECTORY_SEPARATOR . $file)) return false; 
     }; 
   } 
   return rmdir($dir); 
 }
}
$projectos = array();

$sql = "...";                                             // o SQL para ler TODOS os projectos não activos
$recordset = ...;                                         // ler a info da base de dados
foreach ($recordset as $record)
{
 $projectos[] = $record['projectName'];
}

if ($handle = opendir('/path/to/files')) {                // abrir directorio
 while (($entry = readdir($handle)) !== false) {         // ciclo de leitura do directorio
   if (is_dir($entry)) {                                 // ignorar ficheiros
     $dirname = substr($entry, strrpos('/', $entry));
     if (array_search($dirname, $projectos) === false) { // verificar se exista na lista de projectos desactivados
       destroy_dir($entry)                               // remover directorio
     }
   }
 }
 closedir($handle);
}


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Sarinha

Olá,

eu tenho que tirar aquilo que tenho e colocar o que você mandou?

Share this post


Link to post
Share on other sites
HappyHippyHippo

Olá,

eu tenho que tirar aquilo que tenho e colocar o que você mandou?

é um código feito de cabeça (tirando a função tirada do stackoverflow) que deverá fazer o que pretendes, apesar de teres de adaptar ao teu código como a criação do SQL e leitura dos dados da base de dados.

se não quiseres usar, podes sempre tirar ideias


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Sarinha

Obrigada, vou ver se consigo colocar a funcionar, que de funções não entendo nd...

Obrigada na mesma.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.