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, 1131 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 XML elemente hinzufügen
gelöst Frage von H41mSh1C0RBatch & Shell3 Kommentare

Hi@PS Profi's Variante 1: Variante2: Was macht sich besser beim Zugriff auf die Elemente? Variante 1 bekomme ich in ...

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

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. ...

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 ...

Neue Wissensbeiträge
Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 4 StundenWindows Update

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Microsoft Office

MS Office 2019 ohne OneNote - OneNote App speichert nur in Cloud

Information von Deepsys vor 15 StundenMicrosoft Office2 Kommentare

Microsoft zeigt deutlich wohin alles bei Ihnen geht, OneNote 2019 wird es nicht mehr geben, und die Windows 10 ...

Humor (lol)

Warum man sein Gast-WLAN nicht beliebig nennen sollte

Erfahrungsbericht von Henere vor 1 TagHumor (lol)5 Kommentare

Servus, mal was aus dem Alltag. Zu Hause. Eigentlich wollte ich nur einen weiteren WLAN-AP ins Netz bringen, damit ...

Sicherheit

Schwachstelle in Intel SPI Flash Firmware kann manipuliert werden

Information von sabines vor 2 TagenSicherheit

Es existiert ein Problem in einigen Intel Chipsätzen, das durch einen lokalen Angreifer genutzt werden könnte. Die Firmware befindet ...

Heiß diskutierte Inhalte
Off Topic
1st , 2nd Level Support Techniker - Patchfeld und Switche etc.
Frage von pixel0815Off Topic30 Kommentare

Moin zusammen, ich weiß gar nicht ob es hier richtig ist, aber mich würde mal interessieren wie ihr das ...

Windows Netzwerk
LAN nur 10MB pro s trotz gb lan
Frage von tsunamiWindows Netzwerk19 Kommentare

Hallo zusammen, ich brauche mal wieder einen Anstoß in die richtige Richtung. Ich habe einen Windows 10 pc mit ...

Festplatten, SSD, Raid
Server SSD: NVMe PCIe 3.0 RAID?
Frage von bouneeFestplatten, SSD, Raid14 Kommentare

Hallo liebe Admins, mir stellt sich gerade die Frage, ob ein neuer Server mit SSD NVMe PCIe 3.0 Sinn ...

Windows 10
Windows 10 Startmenü-Einstellungen Systemweit festlegen
Frage von flotautWindows 1013 Kommentare

Guten Morgen liebe Admins, wir möchten bei uns am Lehrstuhl demnächst auf Windows 10 umsteigen. Wir installieren unsere PC's ...