Generowanie XML z bazy danych przy pomocy PHP

0

Witam,

Nie mogę sobie w żaden sposób poradzić z problemem. Próbuję napisać w PHP skrypt pobierający tabelę z bazy danych i tworzący z niej XML, jako wartość string.

Przeczytałem ten fajny kursik - http://museum.webcity.pl/webcity/artykuly.php/t/39 i niby wszystko wydaje się banalnie proste, ale skrypt nie działa. Sprawdzałem kilkukrotnie i:
a) połączenie z serwerem i bazą jest poprawne
b) zapytanie sql jest poprawne i mogę wyświetlać rekordy

Niestety XML nie jest tworzony. Pomyślałem, że może coś źle spisałem lub mam złą tabelę, więc zaczerpnąłem u źródła. Wykonałem wszystko identycznie jak w tym kursie - http://www.talkphp.com/xml-xsl[...]ps-dom-functions-part-one.html, łącznie z tabelą i dalej nie działa :/

Podsumowując. Czy u Was kod z kursu działa poprawnie? Ewentualnie, czy możecie udostępnić mi jakieś sprawdzone materiały przedstawiające sposób stworzenia XML'a z bazy danych mySQL przy użyciu PHP?

0

CO nie działa? Daj swój kod.

0

Mój kod jest identyczny z tym ze strony w 2 linku (http://www.talkphp.com/xml-xslt-xpath-xquery/1552-generating-xml-mysql-db-phps-dom-functions-part-one.html) i ze strony z pierwszego linka :/

PHP złożone w całość:

 <?php

$link = mysql_connect('localhost','jooomla','joomla');
mysql_select_db(test1',$link); 

$result = mysql_query('SELECT `name`,`bhp`,`year_released` FROM `cars`');

$doc = new DomDocument('1.0'); 

$root = $doc->createElement('carlist');
$root = $doc->appendChild($root);  

while($row = mysql_fetch_assoc($result))
{
    // add node for each record
    $car= $doc->createElement('car');
    $car = $root->appendChild($car);
		
		foreach($row as $fieldname => $fieldvalue)
{
    $child = $doc->createElement($fieldname);
    $child = $car->appendChild($child);
    //add data to the new element
    $value = $doc->createTextNode($fieldvalue);
    $value = $child->appendChild($value);
}  
		
}  



echo 'Wrote: ' . $doc->save("cars.xml") . '  bytes';  

?>

Plus do tego tabela:

 --
-- Table structure for table `cars`
--

CREATE TABLE `cars` (
`id` tinyint(8) unsigned NOT NULL auto_increment,
`name` char(30) collate utf8_unicode_ci NOT NULL,
`bhp` mediumint(4) unsigned NOT NULL,
`year_released` mediumint(4) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
--
-- Dumping data for table `cars`
--
INSERT INTO `cars` ( `name` , `bhp` , `year_released` )
VALUES (
'Aston Martin DB9', 450, 2004
), (
'Pagani Zonda C12 F', 602, 2005
), (
'Lamborghini Murcielago LP640', 633, 2006
), (
'Koenigsegg CCX', 806, 2006
), (
'Bugatti Veyron EB 16.4', 1001, 2006
);

Zamiast pełnej struktury tabeli jest tworzony tylko taki kod:

<?xml version="1.0"?>
<carlist/>
 

Sprawdzałem kilka razy i już sam nie wiem co jest źle.

0

Wygląda na to, że masz pustą bazę. Sprawdź dobrze, czy te wpisy się zrobiły. Przez phpMyAdmin widziałeś, że są?

1 użytkowników online, w tym zalogowanych: 0, gości: 1