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

mas você tem o script para fazer isso que eu preciso? se tiver dá ai uma ajuda.. tnho que acabar o projecto até a próxima terça/quarta e ta dificil arranjar isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que fazer um SELECT usando JOIN, com uma condição de relacionamento.

Dê uma estudada em relacionamento de tabelas. Há um artigo do Fabyo sobre isso no sub-fórum de Artigos.

 

[]s

Beraldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

vamos por partes..se calhar é mais facil de eu entender e de vocês tentarem explicar.

 

imaginem que eu quero ir buscar os dados de uma certa tabela (ou seja gerar o create) e de seguida o insert..

como faria?

Compartilhar este post


Link para o post
Compartilhar em outros sites

hinom, acredita que já procurei imensas vezes, várias vezes ao dia, e ainda não encontrei nada de concreto que me ajudasse realmente naquilo que pretendo.

Se tivesse encontrado, não estava, aqui neste tópico, a pedir-vos que me ajudassem..

Compartilhar este post


Link para o post
Compartilhar em outros sites

entendo, mas depende como você faz uma busca

 

se procurar algo específico dificilmente encontrará algo já pronto conforme deseja

 

divida por partes, faça uma pesquisa e organize o que encontrar.

 

exemplo

 

1- como fazer uma conexão externa para o banco de dados:

 

palavras-chave

"conexao externa mysql"

"mysql external connection"

 

http://forum.imasters.com.br/index.php...o+externa+mysql

 

http://www.google.com/search?q=conexao+ext...GL_enJP289JP289

 

 

2- obter os nomes das tabelas do banco de dados:

 

palavras-chave

"mysql mostrar todas as tabelas"

"mysql show all tables"

 

http://www.google.com/search?hl=en&rlz...amp;btnG=Search

 

 

3- selecionar campos no mysql e filtra por uma condicional

 

"condicional mysql"

"mysql select fields condition"

"mysql conditional"

 

http://www.google.com/search?hl=en&rlz...amp;btnG=Search

 

 

enfim..

 

 

posso estar julgando erroneamente, mas pelo que parece você está com prazo estourado e está precisando que alguem faça o seu serviço até terça-feira.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu só queria ajuda para perceber como consigo seleccionar as tabelas e campos que quero..

mas tudo bem, obrigado na mesma.

foram muito úteis.

desculpem qualquer incomodo..

 

ps: o projecto final é para entregar daqui a 8 dias..

Compartilhar este post


Link para o post
Compartilhar em outros sites

pois, o sistema de backup's para a aplicação eu já tnho.

o sistema de baclup selecciona todas as tabelas, eu só quero 4 em 10..

e dessas 4, duas têm condições.

é para isso que eu estou a pedir ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo, a tabela imoveis so seleccionaria os registos que tivessem o campo exportar = sim..

e a tabela fotos só seleccionava as fotos que mediante a pesquisa anterior.. ou seja os imoveis com o campo exportar=sim

Compartilhar este post


Link para o post
Compartilhar em outros sites

porque imagine que a tabela produtos tem 1000 registos e eu só tenho 50 que são para colocar no site online..

e na tabela fotos cada registo tem pelo menos 5 fotos..

ia estar a sobercarregar a bd que está online desnecessáriamente.

é por isso que queria fazer isso..

se não conseguir a unica solução é mesmo passar a base dados toda..

mas se quiser passar só 4 tabelas dá para seleccionar?? imagina que a minha app tem 10 tabelas, mas só 4 é que são usadas na pagina online, dá para enviar só essas 4? Se sim, diz ai sff, pk já é uma ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu tnho um sistema de backup's que tou a utilizar na app..

mas ele guarda as tabelas todas..

eu só quero que ele guarde algumas..

é essa a minha duvida agora, pois já tou a conseguir fazer o export online.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tou a utilizar este código, mas ele está a gerar todas as tabelas da base dados, em vez daquelas que menciono.

e quando faço o export ele diz exportado com sucesso, mas quando vou ver não está lá nada.

:S

 

cria base dados

<?
$dbhost = $_POST['ip'];
$dbuser = $_POST['login'];
$dbpass = $_POST['senha'];
$dbname = "basedados";
$table_names = "imovel;fotos;distrito;concelho;contactos;quemsomos";


extract($_POST);
$fp3 = fopen ($path."dbexport.php","w");
  fwrite ($fp3,"<?\n");
  fwrite ($fp3,"\$dbhost=\"$dbhost\";\n");
  fwrite ($fp3,"\$dbuser=\"$dbuser\";\n");
  fwrite ($fp3,"\$dbpass=\"$dbpass\";\n");
  fwrite ($fp3,"\$dbname=\"$dbname\";\n");
  fwrite ($fp3,"\$path=\"$path\";\n");
  fwrite ($fp3,"?>\n");
fclose ($fp3);
chmod($path."dbexport.php", 0644);
if ($recreate!=1) include "dbexport.php";

if ($recreate!=1) {
   flush();
   $conn = @mysql_connect($dbhost,$dbuser,$dbpass);
   if ($conn==false)  echo "<script>alert('ERRO! Dados Incorrectos.');history.back(1);</script>";
   $path = $path . "export/";
   if (!is_dir($path)) mkdir($path, 0766);
   chmod($path, 0777);

   if(!file_exists($path . "exportar.sql"))
   {
	$fp2 = fopen ($path."exportar.sql","w");
	fwrite ($fp2,"");
	fclose ($fp2);
		chmod($path."exportar.sql", 0777);
   }

   if(file_exists($path . "exportar.gz"))
   { 
	   unlink($path."exportar.gz");
   } 
} else {   // recreate dir /export
   $path = $path . "export/";
   if (!is_dir($path)) mkdir($path, 0766);
   chmod($path, 0777);
}

function get_def($dbname, $table) {
	global $conn;
	$def = "";
	$def .= "DROP TABLE IF EXISTS $table;#%%\n";
	$def .= "CREATE TABLE $table (\n";
	$result = mysql_db_query($dbname, "SHOW FIELDS FROM $table",$conn) or die("Tabela $table não existe na base dados");
	while($row = mysql_fetch_array($result)) {
		$def .= "	$row[Field] $row[Type]";
		if ($row["Default"] != "") $def .= " DEFAULT '$row[Default]'";
		if ($row["Null"] != "YES") $def .= " NOT NULL";
	   	if ($row[Extra] != "") $def .= " $row[Extra]";
			$def .= ",\n";
	 }
	 $def = ereg_replace(",\n$","", $def);
	 $result = mysql_db_query($dbname, "SHOW KEYS FROM $table",$conn);
	 while($row = mysql_fetch_array($result)) {
		  $kname=$row[Key_name];
		  if(($kname != "PRIMARY") && ($row[Non_unique] == 0)) $kname="UNIQUE|$kname";
		  if(!isset($index[$kname])) $index[$kname] = array();
		  $index[$kname][] = $row[Column_name];
	 }
	 while(list($x, $columns) = @each($index)) {
		  $def .= ",\n";
		  if($x == "PRIMARY") $def .= "   PRIMARY KEY (" . implode($columns, ", ") . ")";
		  else if (substr($x,0,6) == "UNIQUE") $def .= "   UNIQUE ".substr($x,7)." (" . implode($columns, ", ") . ")";
		  else $def .= "   KEY $x (" . implode($columns, ", ") . ")";
	 }

	 $def .= "\n);#%%";
	 return (stripslashes($def));
}

function get_content($dbname, $table) {
	 global $conn;
	 $content="";
	 $result = mysql_db_query($dbname, "SELECT * FROM $table",$conn);
	 while($row = mysql_fetch_row($result)) {
		 $insert = "INSERT INTO $table VALUES (";
		 for($j=0; $j<mysql_num_fields($result);$j++) {
			if(!isset($row[$j])) $insert .= "NULL,";
			else if($row[$j] != "") $insert .= "'".addslashes($row[$j])."',";
			else $insert .= "'',";
		 }
		 $insert = ereg_replace(",$","",$insert);
		 $insert .= ");#%%\n";
		 $content .= $insert;
	 }
	 return $content;
}

if ($recreate!=1) {
$filetype = "sql";

if (!eregi("/restore\.",$PHP_SELF)) {
	
	$cur_time=date("Y-m-d H:i");
	if ($table_names == "imovel;fotos;distrito;concelho;contactos;quemsomos" ) {
	   $tables = mysql_list_tables($dbname,$conn);
	   $num_tables = @mysql_num_rows($tables);
	   $i = 0;
	   while($i < $num_tables) { 
		  $table = mysql_tablename($tables, $i);
		  $newfile .= get_def($dbname,$table);
		  $newfile .= "\n\n";
		  $newfile .= get_content($dbname,$table);
		  $newfile .= "\n\n";
		  $i++;
	   }	
	} else {
	   $i=0;
	   $tables=explode(";",$table_names);
	   if (count($tables) != 0) {
		  while($i < count($tables)) {
			 $newfile .= get_def($dbname,$tables[$i]);
			 $newfile .= "\n\n";
			 $newfile .= get_content($dbname,$tables[$i]);
			 $newfile .= "\n\n";
			 $i++;
		  }
	   }	   
	}
	$fp = fopen ($path."exportar.$filetype","w");
	fwrite ($fp,$newfile);
	fclose ($fp);
}
}?>

<table class="margem" cellpadding="0" cellspacing="0" width="98%">
<? if ($recreate!=1) { ?>
<tr><td class="main" width="100%">	
<b>O Ficheiro "Exportar Dados" foi processado. </b><br /><br />
<? include('export_insere.php'); ?>
<!--Que contém as seguintes tabelas: -->

<? 
if ($_POST[table_names] == "imovel;fotos;distrito;concelho;contactos;quemsomos") {
   $count = $num_tables;
} else {
   $count = count($tables);
}	  

if ($count == 0) { echo "<font color='red'>Não foi possível efectuar o Exportar dos Dados</font><br>"; }

/*if ($count != 0 ) {
   $i=0;
   while ($i < $count) {
		if ($_POST[table_names] == "*") {
		   echo " ++ <b>".mysql_tablename($tables, $i)."</b><br>";
		} else {
		   echo " ++ <b>".$tables[$i]."</b><br>";
		}
		$i++;
   }
} else {
   echo "<font color='red'>Não foi possível efectuar a cópia de segurança</font><br>";
} */  ?>					 
<!--Este ficheiro é uma cópia de segurança zipada da sua basedados e ela deve conter o mesmo nome.<br />
Se pretender restaurar a cópia de segurança utilize o Menu Segurança.-->
</td></tr>
<? } else { ?>
<tr><td>
O Ficheiro "Exportar Dados" foi recreado, e o ficheiro dbexport.php foi criado.<br /><br />
Pode efectuar o upload da sua cópia para a directoria /export.
</td></tr>

<? } ?>	
</TABLE>

faz o export

<?
if (!file_exists("dbexport.php")) {
   echo "<script>history.back(1);alert('ERRO! Não foi possível localizar o ficheiro.');</script>";
//   die('Não foi possível localizar o ficheiro.');
}   
else {
extract($_GET);
//if ($password=="") die ("Password is empty!");
include "dbexport.php"; 
?>
  <TABLE WIDTH="100%" border="0" cellspacing="0">

<?
if (!isset($file)) {?>
	<TR> 
	  <TD valign="top">
		Em baixo está o ficheiro "Exportar Dados". Clique na imagem abaixo para fazer o export. <br />
		<b>Nota: </b>ao executar o "Exportar Dados" irá sobrepô-la à existente no site. </TD>
	</TR>	 
<? } ?>	

	<TR> 
	  <TD valign="top"> 
		<?
$path = $path . "export/";
if ($file!="") {
	  if (eregi("gz",$file)) { //zip file decompress first than show only
		 @unlink($path."exportar.sql");
		 $fp2 = @fopen("export/exportar.sql","w");
		 fwrite ($fp2,"");
	 fclose ($fp2);
		 chmod($path."exportar.sql", 0777);
		 $fp = @fopen("export/exportar.sql","w");
		 $zp = @gzopen("export/$file", "rb");
		 if(!$fp) {
			  die("O ficheiro SQL não pode ser criado."); 
		 }	
		 if(!$zp) {
			  die("Impossível ler ficheiro zip");
		 }	
		 while(!gzeof($zp)){
		  $data=gzgets($zp, 8192);// buffer php
		  fwrite($fp,$data);
		 }
		 fclose($fp);
		 gzclose($zp);
		 $file="exportar.sql";
		 echo " <br>Ficheiro exportar.sql extraído para $file. <br>";
		 $file='';
	  } // end of unzip
}
if ($file!=""){  
		 
	  flush();
	  $conn = mysql_connect($dbhost,$dbuser,$dbpass) or die(mysql_error());
	$filename = $file;
	set_time_limit(1000);
	$file=fread(fopen($path.$file, "r"), filesize($path.$file));
	$query=explode(";#%%\n",$file);
	for ($i=0;$i < count($query)-1;$i++) {
		mysql_db_query($dbname,$query[$i],$conn) or die(mysql_error());
	}?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu disse antes, estude um pouco de relacionamento de tabelas. Use JOIN.

 

http://forum.imasters.com.br/index.php?showtopic=140816

http://dev.mysql.com/doc/refman/4.1/pt/join.html

http://www.google.com/search?ie=UTF-8&...p;q=select+join

 

 

Tente fazer e poste as dúvdas, se houver.

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.