Wyciąganie wszystkich danych ze stronicowego feeda

0

Witam,
Chce sobie zapisać w bazie wszystkie mecze pobrane z API, problem w tym, że jest ich cała masa dlatego pojedynczy feed został podzielony na strony zawierające po 30 meczy.
Wyciągam już i zapisuje do bazy dane dotyczące pierwszej 30-stki lecz mam problem jak podmienić url z tym, który przechowuje mecze z kolejnej strony aż deo końca.
Feed niestety nie ma podanej ilości stron z meczami, pętla ma się wykonywać aż parametr 'next_page' bedzie równy 'false' (info z mauala).

Tak wygląda feed:

stdClass Object
(
    [success] => 1
    [data] => stdClass Object
        (
            [fixtures] => Array
                (
                    [0] => stdClass Object
                        (
                            [id] => 929584
                            [date] => 2018-07-25
                            [time] => 00:00:00
                            [home_name] => Wikki Tourists
                            [away_name] => Akwa United
                        )
                    ...
                    ...
                    ...
                     [29] => stdClass Object
                        (
                            [id] => 932758
                            [date] => 2018-07-26
                            [time] => 00:30:00
                            [home_name] => D.C. United
                            [away_name] => New York Red Bulls
                        )

                )

            [next_page] => http://livescore-api.com/api-client/fixtures/matches.json?key=************&secret=*****************&page=2
            [prev_page] => 
        )

A tak pętla:

	$url= 'http://livescore-api.com/api-client/fixtures/matches.json?key=***************&secret=*******************t&page=';
	
	for($j=0; $url!='false'; $j++){   
		
		$response = file_get_contents($url);
		$data = json_decode($response);
		
		for($i=0;$i<30;$i++){

			$id = $data->data->fixtures[$i]->id;
			$team1 = $data->data->fixtures[$i]->home_name;
			$team2 = $data->data->fixtures[$i]->away_name;
			$date = $data->data->fixtures[$i]->date;
			$hour = $data->data->fixtures[$i]->time;
			
			$query = $conn->query("INSERT INTO `matches`(`id`,`id_competitions`,`team1`,`team2`,`date`,`hour`) 
			VALUES(".$id.",".$league_id.",'".$team1."','".$team2 ."','".$date."','".$hour."'); ");		
			
		}		
			$url = $data->data->next_page;
	}
2

A co to jest:)?

 for($j=0; $url!='false'; $j++){  

zastosuj do..while

 do{  }
while ($response);
0

Super, teraz poprawnie podmienia linki! :)

Pojawił się nowy problem...

Po poprawnym pobraniu pierwszych 30-stu meczów pojawia się

Warning: file_get_contents('http://livescore-api.com/api-client/fixtures/matches.json?key=*************&secret=**************&page=2'): failed to open stream: No error in C:\xampp\htdocs\....

Gdy wkleję ten link ręcznie do file_get_contents to działa i wtedy wyskakuje ten warning przy kolejnej stronie(w tym przypadku 3). Przeszukałem internet nic nie znalazłem :/ Może już ktoś z Was się spotkał z taką sytuacją?

0

Problemem okazało się to, że dodałem do $url znaki początku i końca stringa - po ich usunięciu działa. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1