<email ⁄>
<windows live messenger ⁄>
<myCurriculum type="pdf" ⁄>
# Table "dados_imagens" DDL CREATE TABLE `dados_imagens` ( `pk_imagem` tinyint(4) UNSIGNED NOT NULL AUTO_INCREMENT, `descricao` varchar(255) NOT NULL DEFAULT '', `url` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`pk_imagem`) ) ENGINE=MyISAM
<?php class DB{ private $host="localhost"; private $username="root"; private $password=""; private $database="pc_net"; /** * Criar a ligação à BD * * @return identificador */ private function DB_connect(){ $db = mysql_connect($this->host,$this->username,$this->password); mysql_select_db($this->database,$db) or die("erro na bd!"); return $db; } /** * Executar uma consulta à base de dados * nota: não é feita nenhuma verificação da validade do SQL * * @param String - instrução sql válida * @return resource */ public function DB_query($iSQL){ $db=$this->DB_connect(); $myResource=mysql_query($iSQL,$db) or die(mysql_error()); mysql_close($db); return $myResource; } } ?>
<?php /** * Class de suporte à criação de instruções SQL simples * * nota: esta class é um simples exemplo, as instruções * criadas são simples e como tal esta class deverá ser * muito mais elaborada, mal tal n é o propósito deste * exemplo :) * */ class SQL{ private $select; private $from; private $where; /** * Método construtor * * @param String - campos a selecionar * @param String - qual a tabela * @param String - condição (opcional) */ public function SQL($select, $from,$where=""){ $this->select=$select; $this->from=$from; $this->where=$where; } /** * Obter a instrução SQL * * @return String - instrução SQL */ public function DoSQL(){ $iSQL="Select $this->select "; $iSQL.="From $this->from "; if($this->where) $iSQL.="Where $this->where "; return $iSQL; } } ?>
<?php /** * Class de suporte à criação do ficheiro XML on-the-fly * nota: apenas por uma questão de estruturação decidi colocar * 2 tags identificadoras antes do xml que é pretendido gerar, mas tal * poderá ser modificado facilmente. * * */ class XML{ private $xmlNomeDoCliente="pedrocorreia.net"; private $xmlNomeDoWork="xml_teste"; /** * Método construtor * * @param String Nome do Cliente * @param String Nome do Work */ public function XML($xmlNomeDoCliente="",$xmlNomeDoWork=""){ if($xmlNomeDoCliente) $this->xmlNomeDoCliente=$nomeDoCliente; if($xmlNomeDoWork) $this->xmlNomeDoWork=$xmlNomeDoWork; } /** * Gerar o ficheiro XML * * nota: neste exemplo uso o UTF-8, * mas poderão alterar para o que pretenderem * * * @param String - xml statments */ public function DoXML($xml){ $initTagCliente=$this->DoInitXMLTag($this->xmlNomeDoCliente); $initTagWork=$this->DoInitXMLTag($this->xmlNomeDoWork); $closeTagCliente=$this->DoCloseXMLTag($this->xmlNomeDoCliente); $closeTagWork=$this->DoCloseXMLTag($this->xmlNomeDoWork); $xml=utf8_encode($xml); header("Content-type: text/xml; charset=UTF-8"); echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ?> $initTagCliente $initTagWork $xml $closeTagWork $closeTagCliente "; } /** * Construir a tag de 'abertura' * * @param String * @return String */ private function DoInitXMLTag($string){return "<$string>";} /** * Construir a tag de 'fecho' * * @param String * @return String */ private function DoCloseXMLTag($string){return "</$string>";} } ?>
<?php include_once("class.XML.php"); include_once("class.SQL.php"); include_once("class.DB.php"); $db=new DB(); //criação do objecto que vai permitir interagir com a base de dados $iSQL=new SQL("pk_imagem, url, descricao","dados_imagens"); //criar a instrução SQL $myResource=$db->DB_query($iSQL->DoSQL()); //fazer query à bd e obter o resource while($myRow=mysql_fetch_array($myResource)){ $descricao=htmlspecialchars($myRow["descricao"]); list($w, $h)=@getimagesize($myRow["url"]); //obter as dimensões da imagem $xmlStatments.="<imagem descricao='$descricao' url='$myRow[url]' width='$w' height='$h' />\r\n"; //criar o statment } $xml=new XML(); //criar o objecto XML $xml->DoXML($xmlStatments); //fazer o output do xml ?>