Sorgonas
Quest-Mob
- Mitglied seit
- 30.03.2010
- Beiträge
- 69
- Reaktionspunkte
- 0
Hallo, ich habe hier eine Abfrage die ich im moment in eine Datei abspeichern lasse. Ich würde diese gerne in meine Datenbank schreiben lassen, jedoch klappt das irgendwie nicht so.
Hier der Code wie er die Daten in die .txt schreibt
<?php
// Konfiguration
$apiKey = 'HIER STEHT MEIN APIKEY'; // Anpassen!
$guildRealm = 'Lothar'; // Auf welchem Server ist Gilde registriert?
$guild = 'Familia de Lux'; // Name der Gilde
$apiUrl = 'https://eu.api.battle.net/wow/';
$cacheFile = dirname(__FILE__).'/cache.sth'; // Speicherort der Cache-Datei
$cacheTimeout = 1; // Cache-Timeout in Sekunden
$characterFields = array('talents', 'professions', 'items'); // Welche Felder der Chars werden benötigt?
// Cache wird nur aufgebaut wenn er noch nicht exisitiert oder wenn der Timeout abgelaufen ist
if(!is_file($cacheFile) || (time() - filemtime($cacheFile)) > $cacheTimeout || filesize($cacheFile) == 0 )
{
$guildData = array();
// Daten über die Gilde samt Mitglieder holen - hier sind alle Mitglieder drin unabhängig vom Realm
$query = array(
'locale' => 'de_DE',
'fields' => 'members',
'apikey' => $apiKey
);
$url = $apiUrl.'guild/'.rawurlencode($guildRealm).'/'.rawurlencode($guild).'?'.http_build_query($query);
$response = @file_get_contents($url, true);
$guildData = json_decode($response, true);
// Jetzt alle Chars anhand der Member laden
$chars = array();
$charsLoaded = 0; // Zähler
foreach($guildData['members'] as $member)
{
$memberChar = $member['character'];
// Aber nicht vom oben konfigurierten Gilden-Realm sondern vom Realm der beim Member hinterlegt ist
$query = array(
'locale' => 'de_DE',
'fields' => 'talents,professions,items',
'apikey' => $apiKey
);
$url = $apiUrl.'character/'.rawurlencode($memberChar['realm']).'/'.urlencode(html_entity_decode($memberChar['name'], ENT_COMPAT, 'UTF-8')).'?'.http_build_query($query);
$response = @file_get_contents($url, true);
$chars[] = json_decode($response, true);
// Zählen
$charsLoaded++;
if($charsLoaded === 9) { // Nach 10 Charakteren ...
$charsLoaded = 0; // ... Zähler zurücksetzen
sleep(1); // ... 1 Sekunde Pause
}
}
$guildData['characters'] = $chars;
file_put_contents($cacheFile, json_encode($guildData));
// Testausgabe
echo '<pre>';
print_r($guildData);
echo '</pre>';
};
?>
Und dies ist der Versuch die Datenbank ein zu binden:
<?php
// Konfiguration
$apiKey = 'HIER STEHT MEIN APIKEY'; // Anpassen!
$guildRealm = 'Lothar'; // Auf welchem Server ist Gilde registriert?
$guild = 'Familia de Lux'; // Name der Gilde
$apiUrl = 'https://eu.api.battle.net/wow/';
$cacheFile = dirname(__FILE__).'/cache.sth'; // Speicherort der Cache-Datei
$cacheTimeout = 1; // Cache-Timeout in Sekunden
$characterFields = array('talents', 'professions', 'items'); // Welche Felder der Chars werden benötigt?
// Cache wird nur aufgebaut wenn er noch nicht exisitiert oder wenn der Timeout abgelaufen ist
if(!is_file($cacheFile) || (time() - filemtime($cacheFile)) > $cacheTimeout || filesize($cacheFile) == 0 )
{
$guildData = array();
// Daten über die Gilde samt Mitglieder holen - hier sind alle Mitglieder drin unabhängig vom Realm
$query = array(
'locale' => 'de_DE',
'fields' => 'members',
'apikey' => $apiKey
);
$url = $apiUrl.'guild/'.rawurlencode($guildRealm).'/'.rawurlencode($guild).'?'.http_build_query($query);
$response = @file_get_contents($url, true);
$guildData = json_decode($response, true);
// Jetzt alle Chars anhand der Member laden
$chars = array();
$charsLoaded = 0; // Zähler
//Verbindung der DB herstellen
$datenbank = mysql_connect('localhost','BENUTZERNAME','PASSWORT');
if($datenbank)
echo('DB-Serververbindung hergestellt! ');
else
die('DB-Serververbindung fehlgeschlagen! ');
// Datenbank auswählen
mysql_select_db('usr_web22_4', $datenbank);
foreach($guildData['members'] as $member)
{
$memberChar = $member['character'];
// Aber nicht vom oben konfigurierten Gilden-Realm sondern vom Realm der beim Member hinterlegt ist
$query = array(
'locale' => 'de_DE',
'fields' => 'talents,professions,items',
'apikey' => $apiKey
);
$url = $apiUrl.'character/'.rawurlencode($memberChar['realm']).'/'.urlencode(html_entity_decode($memberChar['name'], ENT_COMPAT, 'UTF-8')).'?'.http_build_query($query);
$response = @file_get_contents($url, true);
$chars[] = json_decode($response, true);
// Zählen
$charsLoaded++;
if($charsLoaded === 9) { // Nach 10 Charakteren ...
$charsLoaded = 0; // ... Zähler zurücksetzen
sleep(1); // ... 1 Sekunde Pause
}
}
$guildData['characters'] = $chars;
//Daten in DB speichern (json_encode($aGuildData))
$sql_befehl = " INSERT INTO wy8b2_mitgliederliste (chars, klasse, level, firtal, sectal, firber, secber, erfolg) VALUES
(
'" . $chars['name'] . "',
'" . $chars['class'] . "',
'" . $chars['level'] . "',
'" . $chars['talents'][0]['spec']['name'] . "',
'" . $chars['talents'][1]['spec']['name'] . "',
'" . $chars['professions']['primary'][0]['rank'] . "',
'" . $chars['professions']['primary'][1]['rank'] . "',
'" . $chars['achievementPoints'] . "'
)";
mysql_query ($sql_befehl);
$guildData['members'][] = json_decode($response, true);
// Testausgabe
echo '<pre>';
print_r($chars);
echo '</pre>';
};
?>
Könnt Ihr mir hierbei helfen?
Hier der Code wie er die Daten in die .txt schreibt
<?php
// Konfiguration
$apiKey = 'HIER STEHT MEIN APIKEY'; // Anpassen!
$guildRealm = 'Lothar'; // Auf welchem Server ist Gilde registriert?
$guild = 'Familia de Lux'; // Name der Gilde
$apiUrl = 'https://eu.api.battle.net/wow/';
$cacheFile = dirname(__FILE__).'/cache.sth'; // Speicherort der Cache-Datei
$cacheTimeout = 1; // Cache-Timeout in Sekunden
$characterFields = array('talents', 'professions', 'items'); // Welche Felder der Chars werden benötigt?
// Cache wird nur aufgebaut wenn er noch nicht exisitiert oder wenn der Timeout abgelaufen ist
if(!is_file($cacheFile) || (time() - filemtime($cacheFile)) > $cacheTimeout || filesize($cacheFile) == 0 )
{
$guildData = array();
// Daten über die Gilde samt Mitglieder holen - hier sind alle Mitglieder drin unabhängig vom Realm
$query = array(
'locale' => 'de_DE',
'fields' => 'members',
'apikey' => $apiKey
);
$url = $apiUrl.'guild/'.rawurlencode($guildRealm).'/'.rawurlencode($guild).'?'.http_build_query($query);
$response = @file_get_contents($url, true);
$guildData = json_decode($response, true);
// Jetzt alle Chars anhand der Member laden
$chars = array();
$charsLoaded = 0; // Zähler
foreach($guildData['members'] as $member)
{
$memberChar = $member['character'];
// Aber nicht vom oben konfigurierten Gilden-Realm sondern vom Realm der beim Member hinterlegt ist
$query = array(
'locale' => 'de_DE',
'fields' => 'talents,professions,items',
'apikey' => $apiKey
);
$url = $apiUrl.'character/'.rawurlencode($memberChar['realm']).'/'.urlencode(html_entity_decode($memberChar['name'], ENT_COMPAT, 'UTF-8')).'?'.http_build_query($query);
$response = @file_get_contents($url, true);
$chars[] = json_decode($response, true);
// Zählen
$charsLoaded++;
if($charsLoaded === 9) { // Nach 10 Charakteren ...
$charsLoaded = 0; // ... Zähler zurücksetzen
sleep(1); // ... 1 Sekunde Pause
}
}
$guildData['characters'] = $chars;
file_put_contents($cacheFile, json_encode($guildData));
// Testausgabe
echo '<pre>';
print_r($guildData);
echo '</pre>';
};
?>
Und dies ist der Versuch die Datenbank ein zu binden:
<?php
// Konfiguration
$apiKey = 'HIER STEHT MEIN APIKEY'; // Anpassen!
$guildRealm = 'Lothar'; // Auf welchem Server ist Gilde registriert?
$guild = 'Familia de Lux'; // Name der Gilde
$apiUrl = 'https://eu.api.battle.net/wow/';
$cacheFile = dirname(__FILE__).'/cache.sth'; // Speicherort der Cache-Datei
$cacheTimeout = 1; // Cache-Timeout in Sekunden
$characterFields = array('talents', 'professions', 'items'); // Welche Felder der Chars werden benötigt?
// Cache wird nur aufgebaut wenn er noch nicht exisitiert oder wenn der Timeout abgelaufen ist
if(!is_file($cacheFile) || (time() - filemtime($cacheFile)) > $cacheTimeout || filesize($cacheFile) == 0 )
{
$guildData = array();
// Daten über die Gilde samt Mitglieder holen - hier sind alle Mitglieder drin unabhängig vom Realm
$query = array(
'locale' => 'de_DE',
'fields' => 'members',
'apikey' => $apiKey
);
$url = $apiUrl.'guild/'.rawurlencode($guildRealm).'/'.rawurlencode($guild).'?'.http_build_query($query);
$response = @file_get_contents($url, true);
$guildData = json_decode($response, true);
// Jetzt alle Chars anhand der Member laden
$chars = array();
$charsLoaded = 0; // Zähler
//Verbindung der DB herstellen
$datenbank = mysql_connect('localhost','BENUTZERNAME','PASSWORT');
if($datenbank)
echo('DB-Serververbindung hergestellt! ');
else
die('DB-Serververbindung fehlgeschlagen! ');
// Datenbank auswählen
mysql_select_db('usr_web22_4', $datenbank);
foreach($guildData['members'] as $member)
{
$memberChar = $member['character'];
// Aber nicht vom oben konfigurierten Gilden-Realm sondern vom Realm der beim Member hinterlegt ist
$query = array(
'locale' => 'de_DE',
'fields' => 'talents,professions,items',
'apikey' => $apiKey
);
$url = $apiUrl.'character/'.rawurlencode($memberChar['realm']).'/'.urlencode(html_entity_decode($memberChar['name'], ENT_COMPAT, 'UTF-8')).'?'.http_build_query($query);
$response = @file_get_contents($url, true);
$chars[] = json_decode($response, true);
// Zählen
$charsLoaded++;
if($charsLoaded === 9) { // Nach 10 Charakteren ...
$charsLoaded = 0; // ... Zähler zurücksetzen
sleep(1); // ... 1 Sekunde Pause
}
}
$guildData['characters'] = $chars;
//Daten in DB speichern (json_encode($aGuildData))
$sql_befehl = " INSERT INTO wy8b2_mitgliederliste (chars, klasse, level, firtal, sectal, firber, secber, erfolg) VALUES
(
'" . $chars['name'] . "',
'" . $chars['class'] . "',
'" . $chars['level'] . "',
'" . $chars['talents'][0]['spec']['name'] . "',
'" . $chars['talents'][1]['spec']['name'] . "',
'" . $chars['professions']['primary'][0]['rank'] . "',
'" . $chars['professions']['primary'][1]['rank'] . "',
'" . $chars['achievementPoints'] . "'
)";
mysql_query ($sql_befehl);
$guildData['members'][] = json_decode($response, true);
// Testausgabe
echo '<pre>';
print_r($chars);
echo '</pre>';
};
?>
Könnt Ihr mir hierbei helfen?