Ir para conteúdo

POWERED BY:

Arquivado

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

natalia fernandes

actualizacao de ficheiros

Recommended Posts

boas pessoal!

 

estou com um duvida que me está a matar! É o seguinte..

 

eu tenho 2 tabelas: categorias e produtos

estas tabelas sao actualizaveis

 

eu precisava que ao clicar numa categoria exporta-se todos os produtos(todos os campos dessa tabela) para um ficheiro .xml e automaticamente guarda-se numa pasta do servidor..

 

eu fiz este codigo que é acionado quando eu clico na categoria e envio o id dela para selecionar:

 

 

<?php require_once('../Connections/conn_bd.php'); ?>
<?php
$colname_rsCor = "-1";
if (isset($_GET['categoria'])) {
  $colname_rsCor = (get_magic_quotes_gpc()) ? $_GET['categoria'] : addslashes($_GET['categoria']);
}
mysql_select_db($database_conn_bd, $conn_bd);
$query_rsCor = sprintf("SELECT bd_categorias.nome_cat, bd_produtos.* FROM bd_produtos, bd_categorias WHERE categoria = '%s' AND bd_categorias.id_categoria=bd_produtos.categoria", $colname_rsCor);
$rsCor = mysql_query($query_rsCor, $conn_bd) or die(mysql_error());
$row_rsCor = mysql_fetch_assoc($rsCor);
$totalRows_rsCor = mysql_num_rows($rsCor);



  ?>

<photos>
	<?php do { ?>
		<photo url="<?php echo $row_rsCor['ficheiro']; ?>" peso="<?php echo $row_rsCor['peso']; ?>" dimensoes="<?php echo $row_rsCor['dimensoes']; ?>" />
	<?php } while ($row_rsCor = mysql_fetch_assoc($rsCor)); ?>
</photos>



<?php 
$nome_fich = $row_rsCor['nome_cat'];

$temp_file =  $nome_fich.".xml";

$ftp_server = "creativebitbox.com";
$ftp_user_name = "crbitbox";
$ftp_user_pass = "crbb8794";

$dest_file = "/httpdocs/tmn/imgs/produtos/" . $temp_file;

$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if ((!$conn_id) || (!$login_result)) { 
		echo "FTP connection has failed!";
		echo "Attempted to connect to $ftp_server for user $ftp_user_name"; 
		exit; 
	} else {
		echo 

		$upload = ftp_put($conn_id, $dest_file, $file, FTP_BINARY);
		}
ftp_close($conn_id);
  ?>
  
  <?php
// check connection

<?php
mysql_free_result($rsCor);

redirect ("categorias.php");

?>

 

 

Será que alguem me sabe dizer o que estou a fazer mal?

 

MUITO OBRIGADA desde já :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode fazer um loop pra pegar os dados e pra escrever num arquivo você usa o seguinte...

 

 

file_out_contents($conteudo, $arquivo, destino)

 

eh bem simples, eu criei um topico problema no laço, q tb tem esse problema q ja foi resolvido... você pode ir la ter uma ideia...

 

qq coisa

 

www.php.net

Compartilhar este post


Link para o post
Compartilhar em outros sites

precisa pedir desculpas nao...você tem mesmo q insistir e perguntar...http://forum.imasters.com.br/index.php?showtopic=258204

 

claro sempre posta seu codigo pra gente analizar e procurar o erro e soluciona-lo...

 

bjin

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha já vi o teu codigo e tentei adaptar para o meu mas nao correu lá muito bem :(

 

eu precisava que guarda-se logo para uma determinada pasta no servidor.. vou colocar o codigo que fiz:

 

<?php require_once('../Connections/conn_bd.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
	case "text":
	  $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
	  break;
	case "long":
	case "int":
	  $theValue = ($theValue != "") ? intval($theValue) : "NULL";
	  break;
	case "double":
	  $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
	  break;
	case "date":
	  $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
	  break;
	case "defined":
	  $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
	  break;
  }
  return $theValue;
}
}

$colname_rsCor = "-1";
if (isset($_GET['categoria'])) {
  $colname_rsCor = (get_magic_quotes_gpc()) ? $_GET['categoria'] : addslashes($_GET['categoria']);
}
mysql_select_db($database_conn_bd, $conn_bd);
$query_rsCor = sprintf("SELECT bd_categorias.nome_cat, bd_produtos.* FROM bd_produtos, bd_categorias WHERE categoria = '%s' AND bd_categorias.id_categoria=bd_produtos.categoria", $colname_rsCor);
$rsCor = mysql_query($query_rsCor, $conn_bd) or die(mysql_error());
$row_rsCor = mysql_fetch_assoc($rsCor);
$totalRows_rsCor = mysql_num_rows($rsCor);

$nome_fich = $row_rsCor['nome_cat'];

$xml = "<?xml version='1.0' encoding='iso-8859-1'?>\n";

$xml .= "<photos>\n";
	 do { 
	 	$xml .= "<photo url=".$row_rsCor['ficheiro']." peso=".$row_rsCor['peso']." dimensoes=".$row_rsCor['dimensoes']." />";
	 } while ($row_rsCor = mysql_fetch_assoc($rsCor)); 
$xml .= "</photos>\n";

		  echo $xml;


$noticias = file_put_contents("nokia.xml", $xml);
if($noticias){
echo "sucesso";
}else{
echo "falha";
}
?>

<?php
mysql_free_result($rsCor);
//redirect ("categorias.php");
?>

 

 

 

Além disso está a dar um erro :S

 

não estou a entender muito bem..

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloca o erro que está dando, para poder analizar melhor...

 

acho que está faltando aspas nos valores da photo

 

muda essa linha

 

$xml .= "<photo url=".$row_rsCor['ficheiro']." peso=".$row_rsCor['peso']." dimensoes=".$row_rsCor['dimensoes']." />";

 

para essa

 

$xml .= "<photo url=\"".$row_rsCor['ficheiro']."\" peso=\"".$row_rsCor['peso']."\" dimensoes=\"".$row_rsCor['dimensoes']."\" />";

 

veja se funciona...

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

simplesmente nao faz nada.. nem está a executar a query..

nao entendo!

 

fiz o echo da query e deu isto: Resource id #5

 

porque me dá este erro na query? ela esta bem feita n está? eu estou a enviar a categoria no ficheiro categorias.php..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui na query a categoria não é campo numerico ????

 

$query_rsCor = sprintf("SELECT bd_categorias.nome_cat, bd_produtos.* FROM bd_produtos, bd_categorias WHERE categoria = '%s' AND bd_categorias.id_categoria=bd_produtos.categoria", $colname_rsCor);

 

verifica se todos os nomes dos campos está correto, deve ser alguma coisa na query mesmo...

 

e dah um print($query_rsCor);

 

 

eu fiz um teste aqui e funcionou certinho o código acima, apenas alterei a query...

Compartilhar este post


Link para o post
Compartilhar em outros sites

acabei de achar um erro... clausula where tem que colocar a tabela...

 

$query_rsCor = sprintf("SELECT bd_categorias.nome_cat, bd_produtos.* FROM bd_produtos, bd_categorias WHERE bd_categorias.categoria = '%s' AND bd_categorias.id_categoria=bd_produtos.categoria", $colname_rsCor);

Compartilhar este post


Link para o post
Compartilhar em outros sites

não acho que seja por causa disso.. já alterei o código novamente e continua a dar o mesmo erro :(

 

desta vez até fiz 2 querys, uma para selecionar o nome do ficheiro (que tem de ser o nome da categoria) e outra para selecionar os dados dos produtos..

mas que nó no cerebro!

 

 

<?php require_once('../Connections/conn_bd.php'); ?>
<?php
$colname_rs = "-1";
if (isset($_GET['categoria'])) {
  $colname_rs = (get_magic_quotes_gpc()) ? $_GET['categoria'] : addslashes($_GET['categoria']);
}
mysql_select_db($database_conn_bd, $conn_bd);
$query_rs = sprintf("SELECT nome_cat FROM  bd_categorias WHERE id_categoria = '%s'", $colname_rs);
$rs = mysql_query($query_rs, $conn_bd) or die(mysql_error());
$row_rs = mysql_fetch_assoc($rs);
$totalRows_rs = mysql_num_rows($rs);

$colname_rsCor = "-1";
if (isset($_GET['categoria'])) {
  $colname_rsCor = (get_magic_quotes_gpc()) ? $_GET['categoria'] : addslashes($_GET['categoria']);
}
mysql_select_db($database_conn_bd, $conn_bd);
$query_rsCor = sprintf("SELECT * FROM bd_produtos WHERE categoria = '%s'", $colname_rsCor);
$rsCor = mysql_query($query_rsCor, $conn_bd) or die(mysql_error());
$row_rsCor = mysql_fetch_assoc($rsCor);
$totalRows_rsCor = mysql_num_rows($rsCor);

$nome_fich = $row_rs['nome_cat'];


echo $rsCor['ficheiro'];


//variável que ocnterá o texto que será gravado no TXT
$texto = "";
$texto = "<photos>\n";
do {
	$texto .= "<photo url=\"".$row_rsCor['ficheiro']."\" peso=\"".$row_rsCor['peso']."\" dimensoes=\"".$row_rsCor['dimensoes']."\" />";
	
 } while ($row_rsCor = mysql_fetch_assoc($rsCor)); 
$texto .= "</photos>";
		?>  

<?php 
$temp_file =  $nome_fich.".xml";

$ftp_server = "creativebitbox.com";
$ftp_user_name = "crbitbox";
$ftp_user_pass = "crbb8794";

$dest_file = "/httpdocs/tmn/consola/".$temp_file;
$location_file=  "/httpdocs/tmn/consola/".$temp_file;
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

//echo $location_file;
//$upload = ftp_put($conn_id, $dest_file, $file, FTP_BINARY);
$filename = $location_file;

$fp = fopen($filename, "w+");

$escreve = fwrite($fp, $texto);

// Fecha o arquivo
fclose($fp);
ftp_close($conn_id);


echo $texto;

  ?>
<?php
mysql_free_result($rsCor);
redirect ("categorias.php");
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta isso... se não der certo não sei...

 

 

PHP
<?php require_once('../Connections/conn_bd.php'); ?>

<?php

if (!function_exists("GetSQLValueString")) {

function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")

{

$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

 

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

 

switch ($theType) {

case "text":

$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";

break;

case "long":

case "int":

$theValue = ($theValue != "") ? intval($theValue) : "NULL";

break;

case "double":

$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";

break;

case "date":

$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";

break;

case "defined":

$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;

break;

}

return $theValue;

}

}

 

$colname_rsCor = "-1";

if (isset($_GET['categoria'])) {

$colname_rsCor = (get_magic_quotes_gpc()) ? $_GET['categoria'] : addslashes($_GET['categoria']);

}

mysql_select_db($database_conn_bd, $conn_bd);

$query_rsCor = "SELECT bd_categorias.nome_cat, bd_produtos.* FROM bd_produtos, bd_categorias WHERE categoria = $colname_rsCor AND bd_categorias.id_categoria=bd_produtos.categoria";

$rsCor = mysql_query($query_rsCor, $conn_bd) or die(mysql_error());

$row_rsCor = mysql_fetch_assoc($rsCor);

$totalRows_rsCor = mysql_num_rows($rsCor);

 

$nome_fich = $row_rsCor['nome_cat'];

 

$xml = "<?xml version='1.0' encoding='iso-8859-1'?>n";

 

$xml .= "<photos>n";

do {

$xml .= "<photo url="".$row_rsCor['ficheiro']."" peso="".$row_rsCor['peso']."" dimensoes="".$row_rsCor['dimensoes']."" />";

} while ($row_rsCor = mysql_fetch_assoc($rsCor));

$xml .= "</photos>n";

 

echo $xml;

 

 

$noticias = file_put_contents("nokia.xml", $xml);

if($noticias){

echo "sucesso";

}else{

echo "falha";

}

?>

 

<?php

mysql_free_result($rsCor);

//redirect ("categorias.php");

?>

 

aqui está funcionando assim

 

se não funcionar verifique novamente...

 

1) se está passando a variavel categoria na barra de endereço...

2) nome de todos os campos da tabela com a query...

3) permissões no diretorio...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se entendi muito bem mas...

 

 

nessa parte do código ele salva o .xml, e aqui mesmo você determina o caminho dele...

 

por exemplo

 

PHP
$noticias = file_put_contents("../../PASTA/".$nome_fich.".xml", $xml);

 

é isso ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não está a funcionar..

 

mas acho estranho ser assim! não tenho que fazer a ligação por ftp por exemplo para o ficheiro ir pra lá?

sou um cadito burra nesta parte http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

 

Você não está executando esse código no mesmo servidor ?????

 

se não estiver executando no mesmo servidor eu já não sei como que faz... http://forum.imasters.com.br/public/style_emoticons/default/natal_sad.gif http://forum.imasters.com.br/public/style_emoticons/default/natal_sad.gif

 

 

vou dar um procurada para saber ... http://forum.imasters.com.br/public/style_emoticons/default/natal_smile.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu tentei fazer a conexão por ftp deste genero, mas nao resultou:

 

 

$ftp_server = "creativebitbox.com";

$ftp_user_name = "crbitbox";

$ftp_user_pass = "crbb8794";

 

$dest_file = "/httpdocs/tmn/consola/".$temp_file;

$location_file= "/httpdocs/tmn/consola/".$temp_file;

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

 

echo $location_file;

$upload = ftp_put($conn_id, $dest_file, $file, FTP_BINARY);

$filename = $location_file;

$fp = fopen($filename, "w+");

$escreve = fwrite($fp, $xml);

Fecha o arquivo

fclose($fp);

ftp_close($conn_id);

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.