Otóż mam problem, chcę przenieść dane z pliku XML (mam go na serwerze) do bazy danych. "Coś tam" już stworzyłem, lecz dodaje to mi tylko ostatni rekord z xml-a. W tym wypadku jest to :
<PotwornyGlodomor nick="Gustaw" wyzerka="305" czas="10146" plansza="8" />
Chciałbym aby dodawało wszystkie rekordy z XML-a, lecz zupełnie nie wiem jak się za to zabrać. Większość czego się nauczyłem robiłem na przykładach, lecz nie mogę sobie z tym problemem poradzić. Może ktoś mógłby mi pomóc ?
Część xml-a:
<?xml version="1.0" encoding="UTF-8"?>
<list>
<PotwornyGlodomor nick="Gustaw" wyzerka="1528" czas="241" plansza="Multi" />
<PotwornyGlodomor nick="Gustaw" wyzerka="473" czas="14147" plansza="1" />
<PotwornyGlodomor nick="Gustaw" wyzerka="150" czas="5727" plansza="2" />
<PotwornyGlodomor nick="Gustaw" wyzerka="150" czas="5155" plansza="3" />
<PotwornyGlodomor nick="Gustaw" wyzerka="150" czas="6654" plansza="4" />
<PotwornyGlodomor nick="Gustaw" wyzerka="150" czas="5032" plansza="5" />
<PotwornyGlodomor nick="Gustaw" wyzerka="150" czas="5492" plansza="6" />
<PotwornyGlodomor nick="Gustaw" wyzerka="150" czas="4494" plansza="7" />
<PotwornyGlodomor nick="Gustaw" wyzerka="305" czas="10146" plansza="8" />
</list>
A tutaj plik PHP:
<?php
//optional comment out or delete
$request = 'http://mojastrona.pl/leaderboard/PotwornyGlodomor/Gustaw.xml';
// POST the curl session object
$session = curl_init($request);
// Set the POST options.
curl_setopt ($session, CURLOPT_POST, true);
curl_setopt ($session, CURLOPT_POSTFIELDS, $request);
curl_setopt($session, CURLOPT_HEADER, true);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
// Do the POST and then close the session
$response = curl_exec($session);
curl_close($session);
// POST HTTP Status code from the response
// Check for errors
switch( $status_code[0] ) {
case 200:
// Success
break;
case 503:
die('Serwer padł
'); break;
case 403:
die('Nie masz odpowiednich uprawnień.'); break;
case 409:
die('<font color="white">Nie można pobrać danych z serwera.</font> '); break;
break;
default:
die('Your call returned an unexpected HTTP status of:' . $status_code[0
]); }
// POST the XML from the response, bypassing the header
if (!($xml = strstr($response, '<?xml'))) { $xml = null;
}
?>
<table class="sortable" border="1" align="left" rules="all" width="100%" id="st_tabela">
<!-- Table Header -->
<thead>
<tr>
<th background='tlo.png'>Nick</th>
<th background='tlo.png'>Wyzerka</th>
<th background='tlo.png'>Czas</th>
<th background='tlo.png'>Plansza</th>
</tr>
</thead>
<!-- Tabel body-->
<tbody>
<?php
// Output the XML
$PotwornyGlodomor = simplexml_load_string($xml);
$PotwornyGlodomor->PotwornyGlodomor->attributes();
foreach ($PotwornyGlodomor->PotwornyGlodomor as $world)
{
$nick = '<td>' . $world['nick'] . '</td>';
$wyzerka = '<td>' . $world['wyzerka'] . '</td>';
$czas = '<td>' . $world['czas'] . '</td>';
$plansza = '<td>' . $world['plansza'] . '</td>';
echo "<tr align='center'>$nick $wyzerka $czas $plansza </tr>";
}
?>
</tbody>
</table>
<?php
$sql_conn = mysql_connect('1*********', '******_admin', '*********'); $zapytanie = "INSERT INTO `czasy` (`nick`, `wyzerka`, `czas`, `plansza`) VALUES ('{$world['nick']}', '{$world['wyzerka']}', '{$world['czas']}', '{$world['plansza']}')";
?>
Pewnie namieszałem tak, że większość z Was profesjonalistów pęknie ze śmiechu, no ale cóż nie każdy musi wszystko umieć. Ja obiecałem sobie, że po skończeniu szkoły biorę się za jakiś konkretny kurs PHP, a później coś pewnie jeszcze dojdzie. Niestety teraz nie mam wystarczająco dużo czasu aby rozwiązać problem samemu, po prostu nie wiem jak to ugryźć dlatego zwracam się do Was z prośbą o pomoc.
Z góry dzięki