Ir para conteúdo

POWERED BY:

Arquivado

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

Janelee

[Resolvido] Problema ao gerar xml por php

Recommended Posts

Olá a todos.

Estou tendo um pequeno problema pra gerar um xml atraves de um php, que busca as informações do meu banco de dados.

Escrevi o código e para testar pedi para ele me retornar o resultado da busca, mas nem isso ele faz.

Alguém sabe o que pode estar ocorrendo.

 

Segue o código:

<?
include "config.php"; // Inclui o script de conexão.

$query = mysql_query("SELECT * FROM blogpostagens as a INNER JOIN blogclientes as b WHERE a.cliente_id = b.idcliente ORDER BY a.cliente_id DESC LIMIT 2");
$sql = mysql_fetch_array($query);

//teste na consulta
echo "passou a consulta </br>";
echo "Uma id é ".$sql['id'];
//fim do teste 1

$xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">";
$xml.= "<indice>";
do 
	{
		$xml.= "<clientes idcliente=\".$sql[id]."\" imagem=\" .$sql[imagem]."\" />"
} while($sql = mysql_fetch_array($query));

$xml.="</indice>";
$arquivo_xml = fopen("indice.xml","w+");
fwrite($arquivo_xml,$xml);
fclose($arquivo_xml);
echo "$xml"; //teste final

?>

thanks a todos desde já

Compartilhar este post


Link para o post
Compartilhar em outros sites

$xml.= "<clientes idcliente=\".$sql[id]."\" imagem=\" .$sql[imagem]."\" />"

O seu XML está dentro de Tags de XML.. isto é correto mas o Browser não vai lhe mostrar nada pois não reconheçe a tag <clientes>

Abra o Arquivo Xml e veja se tem algo dentro, caso não tiver o problema é na query.

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT * FROM blogpostagens as a INNER JOIN blogclientes as b WHERE a.cliente_id = b.idcliente ORDER BY a.cliente_id DESC LIMIT 2

Creio que sua WHERE está errada já testou no MySQl comand Line?

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT * FROM blogpostagens as a INNER JOIN blogclientes as b WHERE a.cliente_id = b.idcliente ORDER BY a.cliente_id DESC LIMIT 2

Creio que sua WHERE está errada já testou no MySQl comand Line?

quando eu testei no phpmyadmin ele me retornou certinho os valores que eu procurava o.O

e arquivo xml nao possui nada dentro. está vazio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual erro ?

Poste o teu código atual... ficou muito vago.

 

você resolveu ou não ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual erro ?

Poste o teu código atual... ficou muito vago.

 

você resolveu ou não ?

Código atual... adaptado de uma matéria do imasters

<? include "config.php";

  //SQL
  $sql  = @mysql_query("
		  SELECT * FROM blogpostagens AS a INNER JOIN blogclientes AS b WHERE a.cliente_id = b.idcliente ORDER BY a.id DESC LIMIT 0,2") 
		  or die("ERRO NO SQL");
  
  //TOTAL DE LINHAS AFETADAS PELA CONSULTA
  $row = mysql_num_rows($sql);
  
  //VERIFICA SE A PESQUISA RETORNOU ALGUMA LINHA
  if($row > 0) {
	
	//ARQUIVO
	$arquivo = "indice.xml";
	
	//ABRE O ARQUIVO(SE NÃO EXISTIR, CRIA)
	$ponteiro = fopen($arquivo, "w");
	
	//ESCREVE NO ARQUIVO XML
	fwrite($ponteiro, "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n");
	fwrite($ponteiro, "<indice>\r\n");
	
	for($i=0; $i<$row; $i++) {
	  
	  //PEGA OS DADOS DO SQL
	  $titulo   = mysql_result($sql,$i,"a.titulo");
	  $text = mysql_result($sql,$i,"a.conteudo"); // seu retirar essa linha o xml gera normalmente
	  $img= mysql_result($sql,$i,"b.imagem");
	  
	  //MONTA AS TAGS DO XML
	  $conteudo  = "<noticia>\r\n";
	  $conteudo .= "<tit>$titulo</tit>\r\n";
	  $conteudo .= "<txt>".strip_tags(substr($text,0,200))."...</txt>\r\n"; // seu retirar essa linha o xml gera normalmente
	  $conteudo .= "<image>$img</image>\r\n";
	  $conteudo .= "</noticia>\r\n";
	  
	  //ESCREVE NO ARQUIVO
	  fwrite($ponteiro, $conteudo);
	}//FECHA FOR
	
	//FECHA A TAG AGENDA
	fwrite($ponteiro, "</indice>");
	
	//FECHA O ARQUIVO
	fclose($ponteiro);
	
	//MENSAGEM
	echo "<h2>iMasters - Coluna PHP - Artigo 83</h2><br>";
	echo "O arquivo <b>".$arquivo."</b> foi gerado com SUCESSO !";
  }//FECHA IF($row)
?>

este é o erro!

 

Erro no processamento de XML: entidade não definida

Posição: http://www.tridez.com.br/blog/indice.xml

Número da linha 10, coluna 66:<txt>Musicais famosos de TV e festas da garotada inspiraram o catálogo  ...</txt>

-----------------------------------------------------------------^

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro é o que a mensagem tá dizendo: entidade não definida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troca por:

$conteudo .= '<txt>'.strip_tags(substr($text,0,200)).'</txt>'; // seu retirar essa linha o xml gera normalmente
Existe a coluna chamada "conteudo" ?

Usa um mysql_fetch_assoc, é bem mais simples.

Compartilhar este post


Link para o post
Compartilhar em outros sites

TABELA REFERIDA

 

blogpostagens (referida tabela a)` (

`id` int(15) NOT NULL auto_increment,

`titulo` varchar(200) collate utf8_unicode_ci NOT NULL default '',

`conteudo` text collate utf8_unicode_ci NOT NULL,

`data` date NOT NULL default '0000-00-00',

`autor` varchar(50) collate utf8_unicode_ci NOT NULL default '',

`categorias` varchar(100) collate utf8_unicode_ci NOT NULL default '',

`media` varchar(10) collate utf8_unicode_ci NOT NULL default '',

`cliente_id` int(11) NOT NULL default '0',

 

 

mudando aquela linha da o mesmo erro, só muda a linha.

Erro no processamento de XML: entidade não definida

Posição: http://www.tridez.com.br/blog/indice.xml

Número da linha 9, coluna 66:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu faço o teste para gerar no IE, ele me retorna o seguinte erro:

 

A página XML não pode ser exibida

Não é possível exibir a entrada XML usando a folha de estilos XSL. Corrija o erro e clique no botão Atualizar ou tente novamente mais tarde.

 

 

--------------------------------------------------------------------------------

 

Referência à entidade 'aacute' não definida. Erro ao processar o recurso 'http://www.tridez.com.br/blog/indice.xml'. Linha...

 

<tit></tit><txt>Musicais famosos de TV e festas da garotada inspiraram o catálogo  &l...

Compartilhar este post


Link para o post
Compartilhar em outros sites

campos longos dentro de uma tag xml mecerem uma CDATA ;)

 

 

<xml><![CDATA[Aqui vai um longo texto <b> com tags</b> e vai de boa]]></xml>

@braços

Compartilhar este post


Link para o post
Compartilhar em outros sites

campos longos dentro de uma tag xml mecerem uma CDATA ;)

 

 

<xml><![CDATA[Aqui vai um longo texto <b> com tags</b> e vai de boa]]></xml>

@braços

GEROU o/

 

Muito Obrigada!!!!!!! :D

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.