-
Total de itens
35 -
Registro em
-
Última visita
Tudo que Paulo Oliveira Albuquerque postou
-
FAZENDO EXPORTAÇÃO DO BANCO DE DADOS MYSLQI
Paulo Oliveira Albuquerque postou uma questão Perguntas e respostas rápidas
Ola galera Preciso de ajuda se puderem me ajudar ai Eu tenho o código de fazer EXPORTAÇÃO da database ela faz tudo certo e salva em uma pasta porém quero que quando ela for baixado que tenha uma listagem dos que foi baixando sem precisar eu ter que abrir o cpanel e ir ate a pasta onde esta Código do form <?php if(isset($_SESSION['msg'])){ echo "<p>".$_SESSION['msg']."</p>"; unset($_SESSION['msg']); } ?> <form method="POST" action="processar.php" enctype="multipart/form-data"> <div class="col-md-6"> <div class="form-group"> <label>Servidor:</label> <input class="form-control" name="servidor" value="localhost" required> </div> </div> <div class="col-md-6"> <div class="form-group"> <label>Usuario:</label> <input class="form-control" name="usuario" value="jnnews_99999" required> </div> </div> <div class="col-md-6"> <div class="form-group"> <label>Senha:</label> <input class="form-control" type="password" name="senha" value="###9898-676#fvf#" required> </div> </div> <div class="col-md-6"> <div class="form-group"> <label>Banco de Dados:</label> <input class="form-control" name="dbname" value="jnnews_99999" required> </div> </div> <center><hr> <button type="submit" class="btn btn-primary">Exportar</button> <br><br> </center> </form> Aqui é o processar.php <?php session_start(); ob_start(); //Receber os dados do formulário $servidor = $_POST['servidor']; $usuario = $_POST['usuario']; $senha = $_POST['senha']; $dbname = $_POST['dbname']; //Criar a conexao com BD $conn = mysqli_connect($servidor, $usuario, $senha, $dbname); //Incluir o arquivo que gerar o backup include_once("gerar_dados.php"); header("Location: listar_database.php"); Este é o gerar_dados.php <?php //Ler as tabelas $result_tabela = "SHOW TABLES"; $resultado_tabela = mysqli_query($conn, $result_tabela); while($row_tabela = mysqli_fetch_row($resultado_tabela)){ $tabelas[] = $row_tabela[0]; } //var_dump($tabelas); $result = ""; foreach($tabelas as $tabela){ //Pesquisar o nome das colunas $result_colunas = "SELECT * FROM " . $tabela; $resultado_colunas = mysqli_query($conn, $result_colunas); $num_colunas = mysqli_num_fields($resultado_colunas); //echo "Quantidade de colunas na tabela: ". $tabela. " - " . $num_colunas . "<br>"; //Criar a intrução para apagar a tabela caso a mesma exista no BD $result .= 'DROP TABLE IF EXISTS '.$tabela.';'; //Pesquisar como a coluna é criada $result_cr_col = "SHOW CREATE TABLE " . $tabela; $resultado_cr_col = mysqli_query($conn, $result_cr_col); $row_cr_col = mysqli_fetch_row($resultado_cr_col); //var_dump($row_cr_col); $result .= "\n\n" . $row_cr_col[1] . ";\n\n"; //echo $result; //Percorrer o array de colunas for($i = 0; $i < $num_colunas; $i++){ //Ler o valor de cada coluna no bando de dados while($row_tp_col = mysqli_fetch_row($resultado_colunas)){ //var_dump($row_tp_col); //Criar a intrução da Query para inserir os dados $result .= 'INSERT INTO ' . $tabela . ' VALUES('; //Ler os dados da tabela for($j = 0; $j < $num_colunas; $j++){ //addslashes — Adiciona barras invertidas a uma string $row_tp_col[$j] = addslashes($row_tp_col[$j]); //str_replace — Substitui todas as ocorrências da string \n pela \\n $row_tp_col[$j] = str_replace("\n", "\\n", $row_tp_col[$j]); if(isset($row_tp_col[$j])){ if(!empty($row_tp_col[$j])){ $result .= '"' . $row_tp_col[$j].'"'; }else{ $result .= 'NULL'; } }else{ $result .= 'NULL'; } if($j < ($num_colunas - 1)){ $result .=','; } } $result .= ");\n"; } } $result .= "\n\n"; //echo $result; } //Criar o diretório de backup $diretorio = 'backup/'; if(!is_dir($diretorio)){ mkdir($diretorio, 0777, true); chmod($diretorio, 0777); } //Nome do arquivo de backup $data = date('d-m-Y'); $tempo= date('h-i-s'); $nome_arquivo = $diretorio . "jnnews_".$data_.$tempo; //echo $nome_arquivo; $handle = fopen($nome_arquivo . '.sql', 'w+'); fwrite($handle, $result); fclose($handle); //Montagem do link do arquivo $download = $nome_arquivo . ".sql"; //Adicionar o header para download if(file_exists($download)){ header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: private", false); header("Content-Type: application/force-download"); header("Content-Disposition: attachment; filename=\"" . basename($download) . "\";"); header("Content-Transfer-Encoding: binary"); header("Content-Length: " . filesize($download)); readfile($download); $_SESSION['msg'] = "<span style='color: green;'>Exportado BD com sucesso</span>"; }else{ $_SESSION['msg'] = "<span style='color: red;'>Erro ao exportar o BD</span>"; } Aqui seria a listagem da database que eu queria que ela aparece <div class="table-responsive"> <table id="DataTable" class="table table-bordered table-striped"> <thead> <tr> <th width="10px">ID</th> <th>Database</th> <th>Data</th> <th>Hora</th> <th idth="53px">Baixar</th> </tr> </thead> <tbody> <?php $Query = DBRead('database','*'); if (is_array($Query)) { foreach ($Query as $database) { ?> <tr> <td><?php echo $database['id']; ?></td> <td><?php echo $database['dbname']; ?></td> <td><?php echo $database['data']; ?></td> <td><?php echo $database['hora']; ?></td> <td><?php echo $database['nome_arquivo']; ?></td> Tipo ai esta tipo uma tabela sql o que eu preciso na verdade é que todos banco de dados baixado ele seja listado ai pra mim baixar Se puderem me ajudar ai fico grato