To mój pierwszy post na forum zatem proszę o wyrozumiałość. Niedawno rozpocząłem naukę z php i mysql. Przygoda ma charakter hobbystyczny a nie zawodowy

Po przeczytaniu paru poradników, oraz kilku tematów na forum dotarłem do ściany, której nie mogę przeskoczyć zapewne z braku wiedzy...
Mam plik XML o następującej strukturze:
<?xml version="1.0" encoding="iso-8859-1"?> <users> <user> <id>1</id> <name>OxyOne</name> <country>Poland</country> <create_time>1269214668</create_time> <total_credit>36565783.913079</total_credit> <expavg_credit>0.073896</expavg_credit> <expavg_time>1296112503.116560</expavg_time> <cpid>85a8d8d9e7777d7767f7533b57c21976</cpid> <url>www.dow-dom.pl</url> <teamid>1</teamid> <has_profile/> </user> <user> <id>2</id> <name>Sesef</name> <country>Poland</country> <create_time>1269214790</create_time> <total_credit>1250412.600000</total_credit> <expavg_credit>0.087206</expavg_credit> <expavg_time>1297016103.293520</expavg_time> <cpid>335e120fa8cffa5962d74116794a6238</cpid> <teamid>1</teamid> <has_profile/> </user> <user> <id>3</id> <name>TJM</name> <country>Poland</country> <create_time>1269267344</create_time> <total_credit>375206.266922</total_credit> <expavg_credit>917.385636</expavg_credit> <expavg_time>1299414219.395720</expavg_time> <cpid>607b0336728f973583ac7347ce9eddb7</cpid> <teamid>2</teamid> </user>
plik jest obszerny, jego ostatni węzeł to:
<user> <id>7361</id> <name>Looom</name> <country>Germany</country> <create_time>1299411884</create_time> <total_credit>169.050000</total_credit> <expavg_credit>16.718423</expavg_credit> <expavg_time>1299418493.075990</expavg_time> <cpid>0cd9d2895bcb406b153ccd944a2b54f4</cpid> </user> </users>
łącznie od 0..4414 i będzie rosło w przyszłości...
Ten kod:
<?php $reader = new XMLReader(); $reader->open('user.xml'); $count=0; while($reader->read()) { if($reader->nodeType == XMLReader::ELEMENT) { $name = $reader->name; if ($reader->name == 'user') { } } if($reader->nodeType == XMLReader::TEXT || $reader->nodeType == XMLReader::CDATA) { } if($reader->nodeType == XMLReader::END_ELEMENT) { if ($reader->name == 'user') { $count++; } } } // Tutaj wyswietlam otrzymana tablicę ?>
Poprawnie wyłuskuje dane z pliku xml czego efektem jest wyświetlenie następujących danych:
Array ( [0] => Array ( [id] => 1 [name] => OxyOne [country] => Poland [create_time] => 1269214668 [total_credit] => 36565783.913079 [expavg_credit] => 0.073896 [expavg_time] => 1296112503.116560 [cpid] => 85a8d8d9e7777d7767f7533b57c21976 [url] => www.dow-dom.pl [teamid] => 1 ) [1] => Array ( [id] => 2 [name] => Sesef [country] => Poland [create_time] => 1269214790 [total_credit] => 1250412.600000 [expavg_credit] => 0.087206 [expavg_time] => 1297016103.293520 [cpid] => 335e120fa8cffa5962d74116794a6238 [teamid] => 1 ) [2] => Array ( [id] => 3 [name] => TJM [country] => Poland [create_time] => 1269267344 [total_credit] => 375206.266922 [expavg_credit] => 917.385636 [expavg_time] => 1299414219.395720 [cpid] => 607b0336728f973583ac7347ce9eddb7 [teamid] => 2 ) [3] => Array ( [id] => 4 [name] => Peciak [country] => Poland [create_time] => 1269278614 [total_credit] => 27244354.638341 [expavg_credit] => 158091.684059 [expavg_time] => 1299434600.133820 [cpid] => de177e5231a39320173762a59cad575e [teamid] => 1 )
itd... aż do
[4414] => Array ( [id] => 7361 [name] => Looom [country] => Germany [create_time] => 1299411884 [total_credit] => 169.050000 [expavg_credit] => 16.718423 [expavg_time] => 1299418493.075990 [cpid] => 0cd9d2895bcb406b153ccd944a2b54f4 ) )
i teraz moje pytanie:
W jaki sposób te dane mogę umieścić w tabelach w bazie MySQL poprzez odpowiednie polecenia PHP?
Problem polega również na tym, że nie zawsze we wszystkich węzłach występują jednakowe pola... np. nie wszędzie występuje [teamid], [url].
Dodatkowo, czy jest możliwe aby zdefiniować jakie pola z listy wewnętrznej
[id] [name] [country] [create_time] [total_credit] [expavg_credit] [expavg_time] [cpid] [url] [teamid]
będą wstawiane do danej tabeli w bazie danych.
Np. Chciałbym podzielić te dane do dwóch tabel:
Pierwsza - zawierająca [cpid jako PrimaryKey][name][country][teamid] z możliwością robienia updatów jeżeli dojdą nowi user
Druga - zawierająca [numer - jako primary key AI][date - wstawiana z automatu w momencie wpisu do wiersza][total_credit][cpid] z możliwością robienia codziennych nowych wpisów dla wszystkich user z bazy jako kolejnych wierszy czyli w efekcie np.:
1 2011-03-08 100 [cpid]
2 2011-03-09 200 [cpid] itd..
Codziennie będzie więc pobierany plik user.xml i będzie robiony update tabeli 1 i uzupełnienie tabeli 2.
Być może rozwiązanie jest banalne dla osób siedzących w temacie ale ja jak na razie nie znalazłem odpowiedzi...
Pewnie gotowego rozwiązania (kodu) nikt mi nie napisze

Tomek.