Może komuś przyda się parserek XML, który wynik dowolnego zapytania SQL transformuje do XML'a na potrzebe Ajax:
<?php class XMLParser { private $dbm; private $result; private $tname; /** * Funkcja query - wysyla zapytanie do parsowania * * @param string $query zapytanie sql * @param string $tname nazwa pierwszej galezi */ public function query(string $query,string $tname='table') { //wykozystanie prostej klasy dostepu do bazy $this->dbm=new database(); $this->dbm->query($query); $this->result = new DOMDocument(); $this->tname=$tname; } /** * Funckja zwraca string xml * * @return string drzewo xml */ public function getXML() { //nazwa korzenia to 'response' $root=$this->result->createElement('response'); $this->result->appendChild($root); //nazwa pierwszej galezi to $tname $table=$this->result->createElement($this->tname); $root->appendChild($table); while($row=$this->dbm->get_row()) { //druga galaz bedzie nazwana 'i'.$tname [jakby instancja $tname] $resp=$this->result->createElement('i'.$this->tname); $table->appendChild($resp); //$this->dbm->query_id to wynik zapytania sql ($result) { $resp->appendChild($element); if(''!=$row[$i]) { $text=$this->result->createTextNode($row[$i]); $element->appendChild($text); } } } return $this->result->saveXML(); } } ?>
Klasa wykozystuje prosta klase dostepu do bazy/roznych baz w zasadzie ale jest dosc prosta i nie wymaga wiekszego zaglebiania. Przykład użycia:
<? //plik z ustawieniami i 'includami' require_once("include/config.php"); //tylko na potrzeby kodowania $dbm=new database(); $dbm->query('SET NAMES utf8'); $xml=new XMLParser(); $xml->query('select * from news','news'); ?>
Pozdrawiam
Piotr