Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Davide Ricardo

Aplicação em localhost actualizar site Online

Recommended Posts

Viva,

Vou colocar aqui um dúvida interessante, pois nunca vi algo do género aqui no fórum.

 

Eu estou a desenvolver uma aplicação web para trabalhar em localhost (máquina do cliente).

Tenho uma opção na aplicação que é Exportar Dados, e o que isto supostamente tem que fazer é, seleccionar todos os produtos com o campo exportar = Sim, e depois executar um script em php que elimine a tabela dos produtos que tá online e substituir por esta que está para exportar.

 

Ora bem, isso teria que requerer um acesso ao site online. Pois bem, eu tnho um script que "entra" no ftp, agora precisava de fazer o resto.

 

Não sei se me fiz entender bem, mas tenho que acabar o projecto até terça feira e falta-me este detalhe muito importante.

 

Alguma dúvida postem

 

Ajuda precisa-se!

Tks

Compartilhar este post


Link para o post
Compartilhar em outros sites

pois,

eu preciso de saber como se faz isso..

porque não faço a mínima ideia..

tou mesmo à rasquinha.. eheheh

 

eu não sei como fazer a ligação para o mysql.

 

ao ftp eu faço:

 

<?php
// definindo o tempo limite da aplicação o time default é de 30 segundos 
// 0  fica um tempo indefinido

set_time_limit(0);
// variavel que vai armazenar o nome do site
$ftp_server = "meudominio.com";
// variavel que vai armazenar o directorio a listar
$dir_rem = "/public_html/pasta/";
// efectua a ligação
$conn_id = ftp_connect($ftp_server);
// caso ocorra algum erro de ligação
if(!$conn_id)
{
 echo "Não foi possivel ligar ao ".$ftp_server;
 exit;
}
else
{
 // faz a autenticação do utilizador 
 // nessa parte sera necessário informar o login e senha
 $login = "login";
 $senha = "pass";
 $login_result = ftp_login($conn_id, $login, $senha);
 if(!$login_result)
 {
  echo "Erro ao efetuar login";
  exit;
 }
 else
 {
  echo "Login efetuado com sucesso...<br>";
  // vejamos agora  em que directorio estamos com a função ftp_pwd
  ftp_chdir($conn_id,$dir_rem);
  echo "O diretório actual agora é: " . ftp_pwd($conn_id) . "<br />";
  // vamos listar o conteudo(arquivos e diretorios) do directorio actual
  function ftp_is_dir($dir) {
  global $conn_id;
  if (ftp_chdir($conn_id, $dir_rem)) {
	ftp_chdir($conn_id, '..');
	return true;
  } else {
	return false;
  }
  }
  $buff = ftp_nlist($conn_id, ".");
  
  if(!$buff)
  {
   echo "Erro ao listar conteudo do directorio";
   exit;
  }
  else
  {
  
	//alphabetical sorting

	sort($buff);
	foreach ($buff as $v) {
	
	//1. Size is '-1' => directory
	  if (ftp_size($conn_id, $v) == -1) {
	
	//output as [ directory ]
		  echo "[ " . $v . " ]<br />\n";
	  }
	}
	foreach ($buff as $v) {
	
	//2. Size is not '-1' => file
	  if (!(ftp_size($conn_id, $v) == -1)) {
	
	//output as file
		  echo "" . $v . "<br />\n";
	  }
	}
  }
 }
}
// fechando a ligação ao FTP
ftp_close($conn_id);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

para ligar ao mysql será kk coisa assim nao?

 

<?php
//ligar à base de dados
mysql_connect("end_IP", "usuario", "senha");
mysql_select_db("base_de_dados");
?>

e agora o script que descrevi no primeiro post??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consulte o suporte do seu servidor e veja qual é o IP ou o domínio em que o MySQL está operando.

 

Veja alguns exemplos:

http://bytes.com/forum/thread514434.html

http://www.phpdig.net/ref/rn41re774.html

 

Mais em:

http://www.google.com/search?hl=pt-BR&...squisar&lr=

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok muito obrigado.

 

E agora relativamente ao script em php que deve seleccionar as tabelas que eu desejo? e depois enviá-las, após ligação externa feita?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quanto à conexão já estou orientado.

Falta o restante.

Eu já vi qualquer coisa no imasters, que através de uma sistema em php "mexiam" na base de dados, criando/eliminando tabelas, bem como inserir ficheiros.

É mais ou menos que pretendo.

Mas antes tenho que fazer um select que me faça uma procura de todas as tabelas que quero enviar. E em determinadas tabelas só quero enviar determinados registos..

Aqui é que está o problema

Compartilhar este post


Link para o post
Compartilhar em outros sites

suas questões são muito básicas

 

você está desenvolvendo um aplicativo sem ter nocções básicas de php e mysql

 

é o mesmo que entrar numa escola, na faculdade por exemplo e ficar perguntando para o professor:

 

"quais as letras do alfabeto ?"

"o que é geografia ?"

 

 

sugiro que estude pelo menos o básico.

 

quanto às querys SQL, consulte o forum MySQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Siga a orientação do hinom. Fazer SELECT's e selecionar bancos de dados é algo bem simples.

No sub-fórum de artigos há um artigo do Fabyo intitulado Sistema de Cadastro em PHP/MySQL. Dê uma estudada nele.

 

[]s

Beraldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

não, as minhas dúvidas não são as básicas, pois utilizo php + mysql já há algum tempo.

 

Realmente relativamente à conexão ao servidor externo era básico, só não me lembrei, pois pensei que fosse mais complexo.

 

Agora a minha segunda questão penso que não tem nada de básico.

O que eu pretendo é seleccionar as tabelas:

- concelho

- distrito

- produtos (só aqueles que têm o campo exportar = sim)

- fotos (só do produtos que são para exportar)

 

Eu tenho que criar um script em php que elimine as tabelas existentes na base dados online, e substitui por estas.

É mais ou menos do género (penso eu) do backup, mas eu tenho condições para duas tabelas.

 

Penso que isto já não é assim tão básico como tavam a dizer.

 

Relembro, que uma aplicação trabalha offline (localhost), e outra aplicação está online.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para remover as tabelas, basta um DROP TABLE.

Para criar o arquivo .sql, use SHOW CREATE TABLE, que mostra a estrutura da tabela. Depois crie os INSERT's com os valores retornados pelo SELECT.

 

Veja:

http://br2.php.net/mysql

 

Dê uma olhada em exemplos de scripts de backup de BDs. É praticamente a mesma coisa.

 

[]s

Beraldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

há alguma possibilidade de eu gerar os insert's para uma tabela, baseado anteriormente de uma consulta?

ou seja, eu tnho um script que gera as tabelas todas, k tnho na aplicação e também os insert's (ou seja, tipo um backup)

mas eu só quero que ele insira os registo onde o campo exportar = sim

Compartilhar este post


Link para o post
Compartilhar em outros sites

O DavideRicardo,

 

Uma vez eu tentei fazer isso.

Fazer um script para rodar em localhost maquina do cliente e conectar em servidores On-Line no Banco de dados MySQL. Só que, a maioria dos servidores nao aceitam conexoes externas, pois isso só funcionam quando a sua conexao de string com o mysql é localhost.

 

Bom é isso ai!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse campo "exportar" está em todas as tabelas? Se sim, basta fazer um, IF no loop que busca os dados.

 

http://www.linhadecodigo.com.br/dicas.asp?...1092⊂=46

http://www.google.com/search?ie=UTF-8&...ackup+mysql+php

 

[]s

Beraldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

não, este campo só está na tabela produtos.

mas há uma tabela (fotos) que só pode exportar os dados que tnham sido seleccionados na tabela produtos.

ou seja, se existem 10 produtos e só dois é que vão ser exportados, então na tabela fotos, so podem ser seleccionados as fotos referentes a esses dois registos.

 

PS: eu já tnho um script a funcionar na minha aplicação que é para fazer backup e restore da base dados.

mas isso selecciona todas as tabelas e todos os dados da base dados. coisa que neste caso eu nao pretendo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.