Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Frage Entwicklung PHP

Mitglied: Jens1985

Jens1985 (Level 1) - Jetzt verbinden

17.01.2014, aktualisiert 19.01.2014, 1075 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 ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Netzwerke
gelöst Zugriff auf Server von verschiedenen VLANs aus (7)

Frage von Kroeger02 zum Thema Netzwerke ...

Backup
gelöst Datensicherung von Daten, auf denen die ganze Zeit gearbeitet wird (8)

Frage von Windows11 zum Thema Backup ...

Microsoft Office
Aus Outlook 2013 Daten aus Tabellenfeldern in Excel übertragen (9)

Frage von ich2110 zum Thema Microsoft Office ...

Batch & Shell
gelöst Powershell - Dateien aus verschiedenen Arrays - Attribute vergleichen (5)

Frage von Giffas zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (14)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...