
davi.feo
Membros-
Total de itens
7 -
Registro em
-
Última visita
Sobre davi.feo

- Data de Nascimento 18/04/1981
Contatos
-
MSN
davi.feo@dsc.com.br
Perfil
-
Gender
Male
davi.feo's Achievements
0
Reputação
-
Olá Pessoal, Estou precisando configurar um banco de dados Informix na minha máquina local para estudar um Livro que faz a solicitação deste database. Consegui instalar o Banco de Dados Informix seguindo um passo a passo um tutorial que achei na net. O banco de dados já aparece como programa para o Windows, assim como o Mysql que tenho instalado. Para o database Mysql eu uso o PHPMYAMIN e/ou o HEIDISQL como ambiente de manipulação. Qual o melhor aplicativo para manipulação do banco Informix ? Desde já, muito obrigado.
-
Agradecendo como sempre as EXCELENTES respostas do nosso GRANDE amigo Eserra ... alguém mais pode me ajudar... eu consegui gerar a estrutura que desejo... porem falta eu gerar o arquivo xml com um nome que precisa ser dinamico a cada geração... passo abaixo o codigo: Eu abro a pagina em php e aparece toda a estrutura do XML...mas preciso que o php exporte um arquivo xml dentro de um diretorio no servidor... como faço isso?? Obrigado pessoal...e o Eserra! :blush: Olá Luiz, sou iniciante em programação orientada mas tem uma classe super simples de implantar que gera dinãmicamente arquivos .xml segue : 1: xml_writer <?php /* * (English) * This file is part of filExp. * * filExp is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation. * * filExp is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with filExp. If not, see <http://www.gnu.org/licenses/>. * *** * (Português) * Este arquivo faz parto do filExp. * * filExp é um software livre: você pode redistribui-lo ou modificá-lo * sob os termos da GNU General Public License como publicada pela * Free Software Foundation. * * filExp está sendo distribuido no intuito de ser útil, * mas SEM NENHUMA GARANTIA; sem jamais implicar em garantia por * COMÉRCIO ou USO PARA PROPÓSITOS PARTICULARES. Veja a * GNU General Public License para mais detalhes. * * Você deve ter recebido uma cópia da GNU General Public License * junto com o filExp. Caso contrário, visite <http://ww.gnu.org/license/> * */ /** * @author Wanderson Regis Silva <wanderson@wandersonregis.com> * @version 0.1.0.0 2009-04-10 */ /** * Gerenciador de nós do documento */ class xml_node { /** * @var string O nome deste nó */ private $node; /** * @var string O conteúdo interno do nó */ private $contents; /** * @var array Os parâmetros do nó */ private $params; /** * @var mixed Os subnós */ private $nodes; /** * Inicializa o nó, com nome e possível conteúdo * @param string $nodename Nome do nó * @param string $contents Conteúdo do nó */ function __construct($nodename, $contents = '') { $this->itialize($nodename, $contents); } /** * Inicializa o nó, com nome e possível conteúdo, útil para limpar o conteúdo ou em classes herdeiras * @param string $nodename Nome do nó * @param string $contents Conteúdo do nó */ function itialize($nodename, $contents = '') { $this->node = str_replace(" ", "_", $nodename); $this->contents = $contents; $this->nodes = array(); $this->params = array(); } /** * Modifica o conteúdo textual do nó * @param string $contents O conteúdo textual * @param boolean $replace Se é para sobrescrever o conteúdo anterior (true) ou adicionar ao fim (false) */ function alter_node_content($contents, $replace = true) { if($replace) $this->contents = $contents; else $this->contents .= $contents; } /** * Adiciona um novo parâmetro * @param string $nodename Nome do novo nó * @param string $contents Conteúdo textual do nó */ function add_param($param, $content = '') { $count = count($this->params); $this->params[$count][0] = str_replace(" ", "_", $param); $this->params[$count][1] = $content; } /** * Adiciona um novo subnó * @param string $nodename Nome do novo nó * @param string $contents Conteúdo textual do nó */ function add_node($nodename, $contents = '') { $this->nodes[] = new xml_node($nodename, $contents); } /** * Adiciona uma árvore já pronta de nós * @param mixed $tree Árvore de nós */ function add_node_tree($tree) { $this->nodes[] = $tree; } /** * Retorna o total atual de subnós dentro deste nó * @return int */ function get_nodes_count() { return count($this->nodes); } /** * Retorna todos os subnós do nó atual * @return array */ function get_nodes() { return $this->nodes; } /** * Retorna um nó específico, em caso de nó um inexistente, retorna false * @param int Índice do nó * @return mixed */ function get_node($nodenumber) { if($nodenumber >= $this->get_nodes_count()) return false; return $this->nodes[$nodenumber]; } /** * Retorna a versão textual da extrutura * @return string A extrutura XML gerada */ function get_text_node() { $text = "<" . $this->node; for($i = 0; $i < count($this->params); $i++) { $text .= " " . $this->params[$i][0] . "=\"" . $this->params[$i][1] . "\""; } $text .= ">\n"; $text .= $this->contents . ( ! empty($this->contents) ? "\n" : NULL); if($this->get_nodes_count()) { for($i = 0; $i < $this->get_nodes_count(); $i++) { $text .= $this->nodes[$i]->get_text_node(); } } $text .= "</" . $this->node . ">\n"; return $text; } /** * Retorna umma array contendo a extrutura * @return array A extrutura XML gerada */ function get_array_node() { $array['name'] = $this->node; for($i = 0; $i < count($this->params); $i++) { $array['param'][] = array( 'name' => $this->params[$i][0], 'value' => $this->params[$i][1] ); } $array['content'] = $this->contents; $array['nodes'] = array(); if($this->get_nodes_count()) { for($i = 0; $i < $this->get_nodes_count(); $i++) { $array['nodes'][] = $this->nodes[$i]->get_array_node(); } } return $array; } } /** * Constrói uma extrutura de arquivo XML */ class xml_writer extends xml_node { /** * @var string Arquivo de saída */ private $filename; /** * @var string Arquivo css de estilização */ private $css; /** * @var string Arquivo XSLT de estilização */ private $xslt; /** * Inicializa a extrutura, com o possível node de arquivo de saída, com nome e possível conteúdo, útil para limpar o conteúdo ou em classes herdeiras * @param string $filename Nome do arquivo de saída * @param string $mainnode Nome do nó * @param string $maincontent Conteúdo do nó */ function __construct($filename = 'xmlfile.xml', $mainnode = 'xmlnode', $maincontent = '') { $this->filename = $filename; parent::itialize($mainnode, $maincontent); $this->css = array(); $this->xslt = array(); } /** * Adiciona um arquivo css para estilização * @param string $filename Nome do arquivo */ function add_css($filename) { $this->css[] = $filename; } /** * Adiciona um arquivo xslt para estilização * @param string $filename Nome do arquivo */ function add_xslt($filename) { $this->xslt[] = $filename; } /** * Envia a extrutura gerada para a saída do navegador */ function send() { header("Pragma: public\n"); header("Expires: 0\n"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0\n"); header("Content-Type: text/xml\n"); header("Content-Disposition: attachment;filename=" . $this->filename . "\n"); echo "<?xml version=\"1.0\" charset=\"utf-8\"?>\n"; if(count($this->css)) { foreach($this->css as $css) echo "<?xml-stylesheet type=\"text/css\" href=\"" . $css . "\"?>\n"; } if(count($this->xslt)) { foreach($this->xslt as $xslt) echo "<?xml-stylesheet type=\"text/xsl\" href=\"" . $xslt . "\"?>\n"; } echo parent::get_text_node(); } /** * Grava a extrutura gerada para um arquivo */ function write() { $data = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"; if(count($this->css)) { foreach($this->css as $css) $data .= "<?xml-stylesheet type=\"text/css\" href=\"" . $css . "\"?>\n"; } if(count($this->xslt)) { foreach($this->xslt as $xslt) $data .= "<?xml-stylesheet type=\"text/xsl\" href=\"" . $xslt . "\"?>\n"; } $data .= $this->get_text_node(); $file = @fopen($this->filename, "w"); if($file) { fwrite($file, $data); fclose($file); return true; } else return false; } } ?> 2.sample.php <?php // Este exemplo irá criar um arquivo xml com dados de países e algus de seus estados include_once 'xml_writer.php'; // Inicia o arquivo XML $mundo = new xml_writer("MUITOLOCO.xml", "GOSTOSAS"); // Adiciona primeiramente um país $mundo->add_node("NASuecia", "a Suecia tem mulheres fantásticas -- "); $mundo->add_node("NASuecia", "a Suecia é show-- "); // Adiciona o nó Brasil ao XML // setando um a um dos nós $mundo->add_node("Brasil", "O Brasil fica na américa latina"); // Pra pegar o último nó (neste caso o nó do Brasil), basta pegar a contagem de nós e subtrair 1 $brasil = $mundo->get_node($mundo->get_nodes_count() - 1); // Adicionando parâmetros $brasil->add_param("Capital", "Brasília"); $brasil->add_param("Idioma", "Português"); $brasil->add_param("Sigla", "BR"); // Adiciona nós (subnós) ao último nó criado // Adiciona o nó Minas Gerais ao nó Brasil $brasil->add_node("Minas Gerais"); $brasil_minas = $brasil->get_node($brasil->get_nodes_count() - 1); $brasil_minas->add_param("Capital", "Belo Horizonte"); // Adiciona o nó São Paulo ao nó Brasil $brasil->add_node("São Paulo"); $brasil_sampa = $brasil->get_node($brasil->get_nodes_count() - 1); $brasil_sampa->add_param("Capital", "São Paulo"); // Adiciona o nó EUA ao XML $mundo->add_node("Estados Unidos Da América"); $eua = $mundo->get_node($mundo->get_nodes_count() - 1); // Adicionando parâmetros $eua->add_param("Capital", "Washington"); $eua->add_param("Idioma", "Inglês"); $eua->add_param("Sigla", "EUA"); // Aqui o nó do estado será criado e só depois adicionado ao nó do país $eua_ny = new xml_node("Nova Iorque"); $eua_ny->add_param("Capital", "Nova Iorque"); $eua->add_node_tree($eua_ny); // Definindo um arquivo CSS para modificar a exibição $mundo->add_css("estilo.css"); // Podem ser adicionados tantos arquivos de estilo quanto forem necessários // A outra opção seria usar um arquivo XSLT para isso // Neste caso a sintaxe seria: // $mundo->add_xslt("stilo.xsl"); // Grava em um arquivo $mundo->write(); header('location: mundo.xml'); // Outras possibilidades: // // Enviar para a saída do navegador // $mundo->send(); // // Obter a forma textual do arquivo, sem o cabeçalho padrão // $mundo->get_text_node(); // // Obter a extrutura gerada em um array // $mundo->get_array_node(); ?> Faça um teste com a sua aplicação. Espero ter ajudado, qualquer problema retorne por favor.
-
Olá Pessoal, Boa tarde, espero que tenham passado um bom feriado, Gostaria de saber se alguêm conhece a ferramenta BIRT da ECLIPSE ? Se posso usa-la com php ou é destinada a Java Apenas ? Trabalho com o NetBeans, posso configurar o BIRT sem montar um ambiente Eclipse, ou seja, instalar apenas a ferramenta de relatórios e não toda a IDE ? alguém tem algum exemplo de aplicação, apenas a titulo de visibilidade de como usar as classes da ferramenta? Desde já agradesço a cooperação de todos do forum.
-
Olá pessoal, Estou muito interessado em entender como funciona a chamada de métodos de vários níveis, achei alguns exemplos navegando, mas nada que me fizesse entender de como funciona a logica, imagino que seja da seguite forma: funcUm()->funcDois()->funcTres() assim: funcTres é submetida ao retorno da funcDois que por sua vez, submetesse ao retorno da funcUm ou seja, o retorno da funcUm é determinante para o processamento da funcDois e assim por diante, ou apenas serve para estabelecer uma sequencia de chamadas e reter lin has no código. ou não é nada disso, estou mesmo meio perdido com esta logica. Valeu pessoal. :)
-
Olá Pessoal estou criando uma Classe que chamo de TmontaQuery, seu metodo construtor não inicia nenhuma var ou métodos inscritos na classe. Minha duvida é : Como faço para acessar, a partir de um método, outros métodos da mesma classe exemplo: A Função campos(comentada) é uma tentativa do que eu preciso, ou seja, chamar um método da mesma classe com a var this, deve estar errado por total, é só para exemplificar. Se puderem me ajudar serei muito grato.
-
Denis Muito Obrigado pela ajuda, consegui otmizar um banco mysql que mal subia em relatórios compostos de tabelas paralelas. Muito Bom mesmo, Obrigado.
-
Olá pessoal do Scriptbrasil, O Scriptbrasil foi indicado por um amigo, também programador, como um excelente recurso naquelas horas em que queremos fugir para a Austrália com a roupa do corpo. Bom, sou novo no forum e desde já, claro, tenho uma duvida: Gostaria de Saber qual a necessidade real, ou seja, o "porque" usar indices em tabelas de dancos, seja o banco que for. Faço uso de php+mysql e tenho um sistema de agendamento que demora a caregar relatórios, os indices podem me ajura ? Muito obrigado :D