Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Daten aus XML mit verschiedenen Elementen ausgeben

Mitglied: Jens1985

Jens1985 (Level 1) - Jetzt verbinden

17.01.2014, aktualisiert 19.01.2014, 1181 Aufrufe, 6 Kommentare

Hi

Meine Frage bzw Problem ist, wie kann ich z.b. die killID und killTime aus dem ersten row mit der kill.php in die Datenbank schreiben.

XML (verkürzt)
<eveapi version="2" zkbapi="1">
<currentTime>2014-01-17 20:30:56</currentTime>
<result>
<rowset name="kills" key="killID" columns="killID,solarSystemID,killTime,moonID">
<row killID="35996084" solarSystemID="30001161" killTime="2014-01-17 17:00:00" moonID="0">
<victim characterID="90925422" characterName="Like a Star" corporationID="98265589" corporationName="Cyberdine Network" allianceID="99004029" allianceName="Cyberdine Alliance" factionID="0" factionName="" damageTaken="457" shipTypeID="670"/>
<rowset name="attackers" columns="characterID,characterName,corporationID,corporationName,allianceID,allianceName,factionID,factionName,securityStatus,damageDone,finalBlow,weaponTypeID,shipTypeID">
<row characterID="1342329648" characterName="I'm Harmless" corporationID="1941177176" corporationName="Habitual Euthanasia" allianceID="386292982" allianceName="Pandemic Legion" factionID="0" factionName="" securityStatus="0.012744149626897" damageDone="86" finalBlow="1" weaponTypeID="14788" shipTypeID="671"/>
<row characterID="753881896" characterName="Alpha Dread" corporationID="719422279" corporationName="The Syndicate Inc" allianceID="99001003" allianceName="Cult of War" factionID="0" factionName="" securityStatus="4.6" damageDone="303" finalBlow="0" weaponTypeID="11196" shipTypeID="11196"/>
<row characterID="91418273" characterName="Ninja87 600" corporationID="1433401211" corporationName="Segmentum Solar" allianceID="1463354890" allianceName="Nulli Secunda" factionID="0" factionName="" securityStatus="4.9" damageDone="68" finalBlow="0" weaponTypeID="11200" shipTypeID="11200"/>
<row characterID="92321940" characterName="UnimatrixZero Arkaral" corporationID="1097611545" corporationName="Light of the moon" allianceID="99003581" allianceName="Fraternity." factionID="0" factionName="" securityStatus="5" damageDone="0" finalBlow="0" weaponTypeID="3244" shipTypeID="11202"/>
<row characterID="92975039" characterName="kuloma Irvam" corporationID="98055960" corporationName="SAKUMA DROP" allianceID="99001954" allianceName="Caladrius Alliance" factionID="0" factionName="" securityStatus="5" damageDone="0" finalBlow="0" weaponTypeID="2977" shipTypeID="11198"/>
<row characterID="92933133" characterName="Yiolo Lemorti" corporationID="616538591" corporationName="Sense of Serendipity" allianceID="807486236" allianceName="Echoes of Nowhere" factionID="0" factionName="" securityStatus="0.3" damageDone="0" finalBlow="0" weaponTypeID="2404" shipTypeID="11186"/>
</rowset>
</row>
<row killID="35996052" solarSystemID="30001161" killTime="2014-01-17 16:57:00" moonID="0">
<victim characterID="1001635641" characterName="Sukkra" corporationID="1756521678" corporationName="X-Com inc" allianceID="99002808" allianceName="Darkness of Despair" factionID="0" factionName="" damageTaken="463" shipTypeID="670"/>
<rowset name="attackers" columns="characterID,characterName,corporationID,corporationName,allianceID,allianceName,factionID,factionName,securityStatus,damageDone,finalBlow,weaponTypeID,shipTypeID">
<row characterID="480753537" characterName="Tornicks" corporationID="935907718" corporationName="Destructive Influence" allianceID="1727758877" allianceName="Northern Coalition." factionID="0" factionName="" securityStatus="5.004464661811" damageDone="17" finalBlow="1" weaponTypeID="27361" shipTypeID="11176"/>
<row characterID="169358295" characterName="Sir Erighan" corporationID="612633154" corporationName="Eve Defence Force" allianceID="99001003" allianceName="Cult of War" factionID="0" factionName="" securityStatus="0.1" damageDone="192" finalBlow="0" weaponTypeID="27361" shipTypeID="11176"/>
<row characterID="1312588913" characterName="Arnebjarnee" corporationID="98110531" corporationName="Black Flag Operations" allianceID="1147488332" allianceName="The Kadeshi" factionID="0" factionName="" securityStatus="0.1" damageDone="135" finalBlow="0" weaponTypeID="8093" shipTypeID="11176"/>
<row characterID="92529851" characterName="Author Dahar" corporationID="98055960" corporationName="SAKUMA DROP" allianceID="99001954" allianceName="Caladrius Alliance" factionID="0" factionName="" securityStatus="5" damageDone="70" finalBlow="0" weaponTypeID="7993" shipTypeID="11176"/>
<row characterID="92392389" characterName="Ganimoth Gandar" corporationID="868558972" corporationName="Critical Mass Inc." allianceID="99000819" allianceName="Nexus Fleet" factionID="0" factionName="" securityStatus="5" damageDone="49" finalBlow="0" weaponTypeID="2488" shipTypeID="11989"/>
<row characterID="1205743773" characterName="Stalward" corporationID="148763686" corporationName="Liga Freier Terraner" allianceID="1727758877" allianceName="Northern Coalition." factionID="0" factionName="" securityStatus="3.4" damageDone="0" finalBlow="0" weaponTypeID="32414" shipTypeID="23913"/>
<row characterID="1460710656" characterName="RSLuke" corporationID="967090302" corporationName="FRAPPE NATION" allianceID="99001990" allianceName="The Predictables" factionID="0" factionName="" securityStatus="1" damageDone="0" finalBlow="0" weaponTypeID="2889" shipTypeID="11989"/>
<row characterID="1002061014" characterName="Indoril Siconus" corporationID="1125584993" corporationName="RillaCorp" allianceID="1147488332" allianceName="The Kadeshi" factionID="0" factionName="" securityStatus="5" damageDone="0" finalBlow="0" weaponTypeID="8089" shipTypeID="11176"/>
<row characterID="170926231" characterName="Stella Loussier" corporationID="828800677" corporationName="Sniggerdly" allianceID="386292982" allianceName="Pandemic Legion" factionID="0" factionName="" securityStatus="-8.2" damageDone="0" finalBlow="0" weaponTypeID="3550" shipTypeID="19724"/>
<row characterID="90463696" characterName="Emily Nevis" corporationID="1111885788" corporationName="Enterprise Estonia" allianceID="1727758877" allianceName="Northern Coalition." factionID="0" factionName="" securityStatus="0" damageDone="0" finalBlow="0" weaponTypeID="31944" shipTypeID="23913"/>
<row characterID="91823466" characterName="oeilvert zeven" corporationID="98219493" corporationName="Corporation of Deep Space Development" allianceID="99001954" allianceName="Caladrius Alliance" factionID="0" factionName="" securityStatus="4.1" damageDone="0" finalBlow="0" weaponTypeID="8089" shipTypeID="11198"/>
<row characterID="1468003362" characterName="Ser Bus" corporationID="98190062" corporationName="Chinese People's Liberation Army" allianceID="99002084" allianceName="Pangu Coalition" factionID="0" factionName="" securityStatus="5" damageDone="0" finalBlow="0" weaponTypeID="3098" shipTypeID="11202"/>
<row characterID="140167246" characterName="M NUS" corporationID="148763686" corporationName="Liga Freier Terraner" allianceID="1727758877" allianceName="Northern Coalition." factionID="0" factionName="" securityStatus="2.5" damageDone="0" finalBlow="0" weaponTypeID="28209" shipTypeID="23757"/>
<row characterID="422225292" characterName="Mark Sinov" corporationID="148763686" corporationName="Liga Freier Terraner" allianceID="1727758877" allianceName="Northern Coalition." factionID="0" factionName="" securityStatus="1.7" damageDone="0" finalBlow="0" weaponTypeID="32414" shipTypeID="23913"/>
<row characterID="1349440821" characterName="Taeylana" corporationID="112548774" corporationName="North Eastern Swat" allianceID="386292982" allianceName="Pandemic Legion" factionID="0" factionName="" securityStatus="4.6" damageDone="0" finalBlow="0" weaponTypeID="19806" shipTypeID="23757"/>
<row characterID="836390512" characterName="Deravis Sunra" corporationID="98055960" corporationName="SAKUMA DROP" allianceID="99001954" allianceName="Caladrius Alliance" factionID="0" factionName="" securityStatus="5" damageDone="0" finalBlow="0" weaponTypeID="8903" shipTypeID="11989"/>
</rowset>
</row>
Um die Infos aus dem ersten row in eine Datenbank zu schreiben habe ich diesen Code (verkürzt)
loss.php
01.
<?php
02.
$xmlFile = $filename;
03.

04.
	
05.
if (file_exists($xmlFile)) 
06.
{
07.
		$xml = simplexml_load_file($xmlFile);
08.
		if ($xml)		
09.
		{		
10.
				foreach ( $xml->result->rowset->row as $user )
11.
				{
12.
                                        $chN = ($user->victim["corporationName"]);
13.
					$chN = str_replace("'"," ",$chN);
14.
					
15.
					$cN = ($user->victim["characterName"]);
16.
					$cN = str_replace("'"," ",$cN);
17.

18.
					$aN = ($user->victim["allianceName"]);
19.
					$aN = str_replace("'"," ",$aN);
20.

21.
							$sql = 
22.
								"
23.
  								INSERT INTO `tablename`
24.
  								( 
25.
  									`characterName`,
26.
									`corporationName`,
27.
									`allianceName`,
28.
									`KillID`,
29.
									`killTime`,
30.
									`shipTypeID`,
31.
									`characterID`,
32.
									`allianceID`,
33.
									`corporationID` 
34.
									  
35.
  								) 
36.
  								VALUES
37.
  								(
38.
									'$cN',
39.
									'$chN',
40.
									'$aN',
41.
									'".$user["killID"]."',
42.
									'".$user["killTime"]."',
43.
									'".$user->victim["shipTypeID"]."',
44.
									'".$user->victim["characterID"]."',
45.
									'".$user->victim["allianceID"]."',
46.
									'".$user->victim["corporationID"]."'
47.

48.
  								);
49.
								";
50.
?>

Um die Infos ab den zweiten row in eine Datenbank zu schreiben habe ich diesen Code (verkürzt)
kill.php
01.
<?php
02.
$xmlFile = $filename;
03.

04.
	
05.
if (file_exists($xmlFile)) 
06.
{
07.
		$xml = simplexml_load_file($xmlFile);
08.
		if ($xml)		
09.
		{		
10.
				foreach ( $xml->xpath('//row') as $user )
11.
				{
12.
				if ($user['shipTypeID'] == "11567" 
13.
					|| $user['shipTypeID'] == "23919" 
14.
					|| $user['shipTypeID'] == "3514" 
15.
					|| $user['shipTypeID'] == "671" 
16.
					|| $user['shipTypeID'] == "23913" 
17.
					|| $user['shipTypeID'] == "23773" 
18.
					|| $user['shipTypeID'] == "22852" 
19.
					|| $user['shipTypeID'] == "3764" 
20.
					|| $user['shipTypeID'] == "23917") 
21.
					{
22.
					$chN = ($user["corporationName"]);
23.
					$chN = str_replace("'"," ",$chN);
24.
					
25.
					$cN = ($user["characterName"]);
26.
					$cN = str_replace("'"," ",$cN);
27.

28.
					$aN = ($user["allianceName"]);
29.
					$aN = str_replace("'"," ",$aN);
30.

31.
							$sql = 
32.
								"
33.
  								INSERT INTO `tablename`
34.
  								( 
35.
  									`characterName`,
36.
									`corporationName`,
37.
									`allianceName`,
38.
									`KillID`,
39.
									`killTime`,
40.
									`shipTypeID`,
41.
									`characterID`,
42.
									`allianceID`,
43.
									`corporationID` 
44.
									  
45.
  								) 
46.
  								VALUES
47.
  								(
48.
									'$cN',
49.
									'$chN',
50.
									'$aN',
51.
									'".$user["killID"]."',
52.
									'".$user["killTime"]."',
53.
									'".$user["shipTypeID"]."',
54.
									'".$user["characterID"]."',
55.
									'".$user["allianceID"]."',
56.
									'".$user["corporationID"]."'
57.

58.
  								);
59.
								";
60.
	
61.
?>

Ich hoffe das die Frage verständlich ist.

Danke Jens1985
Mitglied: Arano
18.01.2014, aktualisiert um 13:20 Uhr
Hallo Jens,

ja ich denke schon das die Frage verständlich ist, aber was ist denn dein Problem dabei ?
Wenn wir nicht wissen was du vor hast, können wir das Problem auch nicht erkennen ;)

Willst du die beiden (oder ggf. mehrere) "victims" mit Angabe der Zeit und der ID in die Datenbank schreiben ?

Also möchtest du aus den beiden Zeilen 5+6 und 16+17:
01.
      <row killID="35996084" solarSystemID="30001161" killTime="2014-01-17 17:00:00" moonID="0"> 
02.
        <victim characterID="90925422" characterName="Like a Star" corporationID="98265589" corporationName="Cyberdine Network" allianceID="99004029" allianceName="Cyberdine Alliance" factionID="0" factionName="" damageTaken="457" shipTypeID="670"/>
03.

04.
      <row killID="35996052" solarSystemID="30001161" killTime="2014-01-17 16:57:00" moonID="0"> 
05.
        <victim characterID="1001635641" characterName="Sukkra" corporationID="1756521678" corporationName="X-Com inc" allianceID="99002808" allianceName="Darkness of Despair" factionID="0" factionName="" damageTaken="463" shipTypeID="670"/> 
Ein Query bauen das etwa wie dieses aussieht:
01.
INSERT INTO `tablename`
02.
            ( `characterName`,`corporationName`,`allianceName`,`KillID`,
03.
              `killTime`,`shipTypeID`,`characterID`,`allianceID`,`corporationID` ) 
04.
     VALUES ( 'Like a Star','Cyberdine Network','Cyberdine Alliance','35996084',
05.
              '2014-01-17 17:00:00','670','90925422','99004029','98265589'),
06.
            ( 'Sukkra','X-Com inc','Darkness of Despair','35996052',
07.
              '2014-01-17 16:57:00','670','1001635641','99002808','1756521678')
Dieses Query hast du schon fast selber zusammengebaut. Zumindest hast du schon alle Angaben selber ermittelt, auch die killID und killTime !
01.
<?php
02.

03.
$xmlFile = 'data.xml';
04.

05.
	
06.
if( file_exists($xmlFile) )
07.
{
08.
    $xml = simplexml_load_file( $xmlFile );
09.
    if( $xml )    // if WHAT !?!?!?    if true, if false, if isresource, if eof, ...
10.
    {
11.
        $sql_start = "INSERT INTO `tablename`\n"
12.
                    ."            ( `characterName`,`corporationName`,`allianceName`,`KillID`,\n"
13.
                    ."              `killTime`,`shipTypeID`,`characterID`,`allianceID`,`corporationID` )\n"
14.
                    ."     VALUES ";
15.
        $sql_values = array();
16.
        foreach( $xml->result->rowset->row as $user )
17.
        {
18.
            $chN = ($user->victim["corporationName"]);
19.
            $chN = str_replace( "'"," ",$chN );
20.
            
21.
            $cN = ($user->victim["characterName"]);
22.
            $cN = str_replace( "'"," ",$cN );
23.
            
24.
            $aN = ($user->victim["allianceName"]);
25.
            $aN = str_replace( "'"," ",$aN );
26.
            
27.
            $sql_values[] =             "( '$cN','$chN','$aN','".$user["killID"]."',\n"
28.
                           ."              '".$user["killTime"]."','"
29.
                                             .$user->victim["shipTypeID"]."','"
30.
                                             .$user->victim["characterID"]."','"
31.
                                             .$user->victim["allianceID"]."','"
32.
                                             .$user->victim["corporationID"]."')";
33.
        }//foreach
34.
        
35.
        // Hier bauen wir das Query vollständig zusammen !
36.
        $sql = $sql_start.implode( ",\n            ",$sql_values );
37.
        echo '<pre>'.$sql.'</pre>';
38.
        
39.
    }//if
40.
}//if
41.

42.
?>
Und falls doch nicht... dann war zumindest für mich die Frage und das Problem nicht verständlich


~Arano
Bitte warten ..
Mitglied: Jens1985
18.01.2014 um 15:02 Uhr
Zitat von Arano:

Hallo Jens,

ja ich denke schon das die Frage verständlich ist, aber was ist denn dein Problem dabei ?
Wenn wir nicht wissen was du vor hast, können wir das Problem auch nicht erkennen ;)


Mein Problem ist das ich mit der kill.php nur die daten ab den zweiten row (characterName, corporationName, allianceName, shipTypeID, characterID, corporationID und allianceID) in die Datenbank bekomme. Aber ich möchte noch zusätzlich die Daten aus den ersten row (killID und killTime) mit in die selbe Datenbank schreiben.

So sieht meine DB jetzt aus
characterName corporationName allianceName shipTypeID characterID corporationID allianceID
I'm Harmless Habitual Euthanasia Pandemic Legion 671 1342329648 1941177176 386292982
Stalward Liga Freier Terraner Northern Coalition. 23913 1205743773 148763686 1727758877
usw

So hätte ich gerne die Tabelle
characterName corporationName allianceName shipTypeID characterID corporationID allianceID killID killTime
I'm Harmless Habitual Euthanasia Pandemic Legion 671 1342329648 1941177176 386292982 35996084 2014-01-17 17:00:00
Stalward Liga Freier Terraner Northern Coalition. 23913 1205743773 148763686 1727758877 35996052 2014-01-17 16:57:00
usw
Bitte warten ..
Mitglied: Arano
18.01.2014 um 15:09 Uhr
Hallo

Da dein PHP-Code dahingehend ja schon alle Daten ermittelt, stellen sich mir zwei Fragen:
  1. Existieren denn die beiden Spalten "killID" und killTime" in der Datenbank und
  2. An welcher Stelle wird das erzeugte Query denn ausgeführt !?
Wie groß ist denn der ganze Code - vielleicht doch mal posten...


~Arano
Bitte warten ..
Mitglied: Jens1985
19.01.2014 um 00:06 Uhr
Hi

zu 1. Die Spalten existieren in der DB aber ohne Inhalt
zu 2. Zeile 81 und 109

Dies ist der ganze Code von der kill.php
01.
<?php
02.

03.

04.
	$dir = 'xml/l2013/';
05.
	foreach (glob($dir.'*.xml') as $filename)
06.
		{
07.
		
08.
			
09.
require_once ('db_config.php');
10.

11.
		
12.
$xmlFile = $filename;
13.

14.
	
15.
if (file_exists($xmlFile)) 
16.
{
17.
		$xml = simplexml_load_file($xmlFile);
18.
		if ($xml)		
19.
		{	
20.
			
21.
				foreach ( $xml->xpath('//row') as $user )
22.
				{
23.
					if ($user['shipTypeID'] == "11567" 
24.
					|| $user['shipTypeID'] == "23919" 
25.
					|| $user['shipTypeID'] == "3514" 
26.
					|| $user['shipTypeID'] == "671" 
27.
					|| $user['shipTypeID'] == "23913" 
28.
					|| $user['shipTypeID'] == "23773" 
29.
					|| $user['shipTypeID'] == "22852" 
30.
					|| $user['shipTypeID'] == "3764" 
31.
					|| $user['shipTypeID'] == "23917") 
32.
					{
33.

34.

35.
					$chN = ($user["corporationName"]);
36.
					$chN = str_replace("'"," ",$chN);
37.
					
38.
					$cN = ($user["characterName"]);
39.
					$cN = str_replace("'"," ",$cN);
40.

41.
					$aN = ($user["allianceName"]);
42.
					$aN = str_replace("'"," ",$aN);
43.
					
44.
					echo 'Character: ' . $user['characterName'] . '<br>';
45.
					echo 'Corp: ' . $user['corporationName'] . '<br>';
46.
					echo 'Aliance: ' . $user['allianceName'] . '<br>';
47.
				
48.
					
49.
					
50.
					
51.
						$sql = 
52.
								"
53.
  								INSERT INTO `tablename`
54.
  								( 
55.
  									`characterName`,
56.
									`corporationName`,
57.
									`allianceName`,
58.
									`KillID`,
59.
									`killTime`,
60.
									`shipTypeID`,
61.
									`characterID`,
62.
									`allianceID`,
63.
									`corporationID` 
64.
									  
65.
  								) 
66.
  								VALUES
67.
  								(
68.
									'$cN',
69.
									'$chN',
70.
									'$aN',
71.
									'".$user["killID"]."',
72.
									'".$user["killTime"]."',
73.
									'".$user["shipTypeID"]."',
74.
									'".$user["characterID"]."',
75.
									'".$user["allianceID"]."',
76.
									'".$user["corporationID"]."'
77.

78.
  								);
79.
								";
80.
	
81.
		// query 1
82.
		$result = mysqli_query($db_link, $sql)
83.
  		or die("Die struktur konnte nicht erstellt werden " . mysql_error($sql));
84.
					}	
85.
				}
86.
		}
87.
		
88.
		} else {
89.
			
90.
    		exit("Datei $xmlFile kann nicht geöffnet werden.");
91.
		}
92.

93.
}
94.
$createTab = "CREATE TABLE `tablename_NEU`
95.
    (
96.
     
97.
	 `characterName` VARCHAR( 255 ) NULL,
98.
	 `corporationName` VARCHAR( 255 ) NULL,
99.
	 `allianceName` VARCHAR( 255 ) NULL,
100.
	 `KillID` VARCHAR( 255 ) NULL,
101.
	 `killTime` VARCHAR( 255 ) NOT NULL,
102.
	 `shipTypeID` VARCHAR( 255 ) NULL,
103.
	 `characterID` VARCHAR( 255 ) NULL,
104.
	 `allianceID` VARCHAR( 255 ) NULL,
105.
	 `corporationID` VARCHAR( 255 ) NULL
106.
    
107.
     );";
108.
mysqli_query($db_link, $createTab);
109.

110.
$insertData = "INSERT INTO tablename_NEU SELECT DISTINCT * FROM tablename;";
111.
mysqli_query($db_link, $insertData);
112.

113.
mysqli_query($db_link, "DROP TABLE tablename;");
114.
mysqli_query($db_link, "RENAME TABLE tablename_NEU TO tablename;");
115.

116.
// query2
117.
?>
Jens
Bitte warten ..
Mitglied: Arano
LÖSUNG 19.01.2014, aktualisiert um 22:22 Uhr
Moin moin !

Hm... haben wir hier doch aneinander vorbei geredet !?
Ich hatte dich ja gefragt ob du ein Query bauen möchtest (s. weiter oben) das dir die "victims" samt "killID" und "killTime" in die Datenbank schreibt und habe dir ein passendes Beispiel gepostet.
Ganz offensichtlich war das aber FALSCH und DU HAST NICHTS GESAGT !?

Du möchtest also ein Query wie dieses haben, Ja ?
01.
INSERT INTO `tablename`
02.
            ( `characterName`,`corporationName`,`allianceName`,`KillID`,
03.
              `killTime`,`shipTypeID`,`characterID`,`allianceID`,`corporationID` )
04.
     VALUES ( 'I m Harmless','Habitual Euthanasia','Pandemic Legion','35996084',
05.
              '2014-01-17 17:00:00','671','1342329648','386292982','1941177176'),
06.
            ( 'Stalward','Liga Freier Terraner','Northern Coalition.','35996052',
07.
              '2014-01-17 16:57:00','23913','1205743773','1727758877','148763686'),
08.
            ( 'Emily Nevis','Enterprise Estonia','Northern Coalition.','35996052',
09.
              '2014-01-17 16:57:00','23913','90463696','1727758877','1111885788'),
10.
            ( 'Mark Sinov','Liga Freier Terraner','Northern Coalition.','35996052',
11.
              '2014-01-17 16:57:00','23913','422225292','1727758877','148763686')
Mit $xml->xpath('//row') bekommst du ALLE "row" Elemente (inkl. ihren Kindelementen), die "rows" der "attackers" erhältst du so doppelt: Einmal als Kindelemente des ersten "row" und ein zweites mal als eigenständige "row".
Dann versuchst du die "attackers" über die "shipTypeID" zu filtern und reduzierst alles auf die einzelnen "rows" der "attackers". Dabei geht das erste row verloren, dieses enthält aber deine benötigte "killID" und "killTime".

Du musst dir also den ersten großen XML-Teil aus der Datei ziehen: quasi das "kill-row".
Merkst dir die "killID" und "killTime" und ziehst dir dann aus dem "kill-row" die einzelnen "attacker-rows" und kannst dann deren Daten, zusammen mit den gemerkten "killID" und "killTime" in die DB speichern bzw. das Query zusammenbauen und alles in einem rutsch in die DB schreiben.
01.
<?php
02.

03.

04.

05.

06.
$xmlFile = 'data.xml';
07.

08.
	
09.
if( file_exists($xmlFile) )
10.
{
11.
    $xml = simplexml_load_file( $xmlFile );
12.
    if( $xml )    // if WHAT !?!?!?    if true, if false, if isresource, if eof, ...
13.
    {
14.
        $sql_start = "INSERT INTO `tablename`\n"
15.
                    ."            ( `characterName`,`corporationName`,`allianceName`,`KillID`,\n"
16.
                    ."              `killTime`,`shipTypeID`,`characterID`,`allianceID`,`corporationID` )\n"
17.
                    ."     VALUES ";
18.
        $sql_values = array();
19.
        
20.
        foreach( $xml->xpath('result/rowset/row') as $kill )
21.
        {
22.
            /**
23.
             * $kill enthält nun das "kill-row" mit allen seinen kindelementen
24.
             *
25.
             * <row killID= >
26.
             *   <victim characterID= />
27.
             *   <rowset name="attackers" >
28.
             *     <row characterID= />
29.
             *     <row characterID= />
30.
             *     ...
31.
             *   </rowset>
32.
             * </row>
33.
             */
34.
            // wir lesen die "killID" und die "killTime" raus und parsen den rest erneut
35.
            // um nur die beteiligten user des kills zu erhalten:
36.
            echo '<br>kill: <b>'.$kill['killID'].'</b><br>';
37.
            $killID   = $kill['killID'];
38.
            $killTime = $kill['killTime'];
39.
            #print_r($kill);
40.
            
41.
            // erneutes parsen
42.
            foreach( $kill->xpath('rowset/row') as $user )
43.
            {
44.
                // wenn shipTypeID des users NICHT einer dieser entspricht - überspringe ihn.
45.
                if( !in_array($user['shipTypeID'],array(11567,23919,3514,671,23913,23773,22852,3764,23917)) )
46.
                continue;
47.
                
48.
                echo $user["characterName"].'<br>';
49.
                
50.
                $chN = str_replace( "'"," ",$user["corporationName"] );
51.
                $cN  = str_replace( "'"," ",$user["characterName"] );
52.
                $aN  = str_replace( "'"," ",$user["allianceName"] );
53.
                
54.
                $sql_values[] =             "( '$cN','$chN','$aN','".$killID."',\n"
55.
                               ."              '".$killTime."','"
56.
                                                 .$user["shipTypeID"]."','"
57.
                                                 .$user["characterID"]."','"
58.
                                                 .$user["allianceID"]."','"
59.
                                                 .$user["corporationID"]."')";
60.
            } //foreach $kill
61.
        } //foreach $xml
62.
        
63.
        $sql = $sql_start.implode( ",\n            ",$sql_values );
64.
        echo '<pre>'.$sql.'</pre>';
65.
        
66.
    } //if
67.
} //if
68.

69.
?>

Hättest du man gleich gesagt
  • was du vorhast,
  • wie du es versuchst und
  • was GENAU nicht funktioniert.

Hoffe es passt jetzt
~Arano
Bitte warten ..
Mitglied: Jens1985
19.01.2014 um 22:22 Uhr
Vielen, vielen dank für deine Mühe.

Im nachhinein ist mir auch ne besser frage Stellung eingefallen.

Jens
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Powershell bestimmtes XML Element entfernen

gelöst Frage von H41mSh1C0RBatch & Shell4 Kommentare

Hi@PS Profi's, ich versuche gerade ein bestimmtes XML Element zu löschen mit dem Attibute name=Test. Hier kommt er mit ...

Batch & Shell

Powershell bestimmtes XML Element auslesen

gelöst Frage von H41mSh1C0RBatch & Shell6 Kommentare

Hi@PS Profi's, Ein Entry ist wiefolgt aufgebaut: Wenn ich nun im Datagrid mir eine Zeile aussuche will ich mir ...

Batch & Shell

BATCH Element aus XML-File auslesen

gelöst Frage von pappkameradBatch & Shell9 Kommentare

Hallo liebe Admins, ich habe schon öfter bei euch vorbeigeschaut und ein immer eine Lösung für meine Problemchen gefunden. ...

VB for Applications

Per vbscript element aus xml datei löschen

gelöst Frage von aletriVB for Applications4 Kommentare

guten abend an alle nun folgt der gegenzug nämlich <Path>C:\Program Files\Lockheed Martin\Prepar3D v4\ATiLibs\scenery</Path> entfernen! Script löscht die Zeile nicht ...

Neue Wissensbeiträge
Internet

Schwarzer Tag für die Netzfreiheit: Die umstrittene Urheberrechtsreform wurde beschlossen

Information von Frank vor 14 StundenInternet22 Kommentare

Ich zitiere einfach mal Julia Reda von den Piraten, da mir selbst einfach die Worte dazu fehlen: Schwarzer Tag ...

Internet
Ist zwar keien Anleitung, aber
Anleitung von SachsenHessi vor 14 StundenInternet1 Kommentar

oder doch eine Anleitung ? Für die nächste EU-Wahl ? SH

PHP
Pfsense - Vouchergenerator 1.6.1
Anleitung von cafepost vor 15 StundenPHP

Hallo Zusammen , aus Sicherheitsgründen wurde mein Server auf den neuesten Stand gebracht, jetzt wollte ich den Vouchergenerator 1.6.1 ...

Internet

Verlag protestiert gegen Artikel 13 (jetzt Artikel 17) der geplanten EU-Verordnung

Information von Dilbert-MD vor 19 StundenInternet

Leider etwas spät, aber immerhin hat auch der heise-Verlag eingesehen, dass die Umsetzung der Urheberrechtsreform - so wie sie ...

Heiß diskutierte Inhalte
Internet
Schwarzer Tag für die Netzfreiheit: Die umstrittene Urheberrechtsreform wurde beschlossen
Information von FrankInternet22 Kommentare

Ich zitiere einfach mal Julia Reda von den Piraten, da mir selbst einfach die Worte dazu fehlen: Schwarzer Tag ...

Voice over IP
Mikrotik: Voip mit SIP Phones in verschiedenen Subnetzen mit FritzBox
Frage von SpartacusVoice over IP20 Kommentare

Hallo, ich habe das Problem, dass ich verschiedene SIP-Clients in unterschiedlichen Subnetzen habe, die mit meinem Server FritzBox7412 keine ...

Batch & Shell
Computer im Active Directory filtern
Frage von chkdskBatch & Shell16 Kommentare

Hallo Zusammen, ich möchte über die Powershell Computer im Active Directory filtern. Als Beispiel: listet mir alle Computer auf, ...

LAN, WAN, Wireless
Netzwerkkomponenten von 2011 und nur 100 Mbit?
gelöst Frage von FalaffelLAN, WAN, Wireless16 Kommentare

Hallo zusammen, ist es möglich, dass bei Netzwerkkomponenten von ca. 2011 nicht mehr wie 100 Mbit möglich ist? Konkret ...