Witam wszystkich, mam dosyć poważny problem. Korzystam z biblioteki nusoap. Miałem ustawionego crona, który pobierał dane z serwisu i zapisywał dane do bazy. Zauważyłem, że od 2 dni nie pobiera on danych, nie wiem co się mogło stać, nie grzebałem nawet w plikach odpowiedzialnych za to..
Jak chcę zrobić import danych to wyskakuje błąd : Invalid argument supplied for foreach() in /wp-content/plugins/wmzpn-tables/classes/class.wszpn_import.php on line 115
Ogólnie mój import wygląda tak:
function __construct($action = null) {
parent::__construct();
switch ($action) {
case 'import':
$this->_client = new nusoap_client($this->_wsdl);
$this->_client->soap_defencoding = 'UTF-8';
$this->_client->decode_utf8 = false;
$this->_client->useHTTPPersistentConnection();
$this->_sKey = $this->_getSessionParam('_sKey');
$this->_logout();
//if (!is_null($this->_sKey)) {
$this->_importPlaysList();
$this->_importCurrentRounds($this->_currentSeason);
$this->_importTimeSchedulesList($this->_currentSeason);
$this->_importTables($this->_currentSeason);
$this->saveConfig('last_import', time());
//}
break;
default:
break;
}
}
Kod w którym występuje błąd - czepia się do foreach ponieważ $_playsList zawiera NULL, tylko nie wiem dlaczego... :
protected function _importPlaysList($seasonId = null) {
$_playsList = $this->_getSoapPlaysList($seasonId);
foreach ($_playsList as $_key => $_plays) {
$_insertValues = "("
. " '" . $_plays['ROZGRYWKA_ID'] . "',"
. " '" . $_plays['NAZWA_LIGI'] . "',"
. " '" . $_plays['SEZON_NAZWA'] . "',"
. " '" . $_plays['ZPN_ID'] . "',"
. " '" . $_plays['POZIOM_LIGI_ID'] . "',"
. " '" . date(DATE_FORMAT_FULL) . "'"
. ")";
$_updateSet = ""
. " `nazwa_ligi` = '" . $_plays['NAZWA_LIGI'] . "',"
. " `sezon_nazwa` = '" . $_plays['SEZON_NAZWA'] . "',"
. " `zpn_id` = '" . $_plays['ZPN_ID'] . "',"
. " `poziom_ligi_id` = '" . $_plays['POZIOM_LIGI_ID'] . "',"
. " `modate` = '" . date(DATE_FORMAT_FULL) . "'";
$_insert = "INSERT INTO `" . DB_PREFIX_EXTERNAL . "rozgrywka`(`rozgrywka_id`,`nazwa_ligi`,`sezon_nazwa`,`zpn_id`,`poziom_ligi_id`,`crdate`) VALUES" . $_insertValues . " ON DUPLICATE KEY UPDATE " . $_updateSet;
mysql_query($_insert);
unset($_insert, $_insertValues, $_updateSet);
}
unset($_playsList);
}
Tutaj metoda _getSoapPlaysList :
protected function _getSoapPlaysList($seasonId = null) {
$this->_importPlaysListCount += 1;
$_params = array(
'sessionKey' => $this->_sKey,
'season_Id' => $seasonId
);
$_response = $this->_sendSoapMessage($_params, $this->_soapGetPlaysListAction);
unset($_params);
if (isset($_response['GetPlaysListResult']['diffgram']['NewDataSet']['_x0022_VE_ROZGRYWKI_x0022_'])) {
return $_response['GetPlaysListResult']['diffgram']['NewDataSet']['_x0022_VE_ROZGRYWKI_x0022_'];
} else {
unset($_response);
}
return null;
}
Jeśli ktoś wie o co może chodzić bardzo proszę o pomoc. Będę wdzięczny