@incognito82
Начал учить PHP :)

Как правильно построить цикл с массивом?

Добрый день. Занимаюсь изучением PHP всего второй день, поэтому попрошу сильно не ругаться за мой "быдло-код" и глупый вопрос. Вообщем суть такова: Я пишу элемент кода, который будет выводить на сайт в сетку Аватар и имя 15-ти пользователей Steam, которые присутствуют в моей базе данных. В моей базе они хранятся как "Steam_ID".

Собственно вопрос:
Как правильно построить код так, чтобы в сетку выводились аватарки пользователей? В моем случае я получил 15 последних записей из БД и записал их в массив, далее пытаюсь через эти записи получить изображения через Steam API, но получаю только изображения первого пользователя. Поставьте, пожалуйста, на путь истинный :)

<?php
		include("db_connect.php");
		$arr = [];
		$avatarid = [];
		$usernameid = [];
		$query = "SELECT * FROM users_profiles ORDER BY `id` DESC limit 15";
		$result = mysql_query($query) or die("Request failed"); 
		if (mysql_num_rows($result) > 0) {  
			while ($row = mysql_fetch_assoc($result)) {
				$arr[]=$row["steam_id"];	
				$uuser = "http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=".$steamauth['apikey']."&steamids=".$row["steam_id"]."";
				$ch = curl_init();
				curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
				curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
				curl_setopt($ch, CURLOPT_URL,$uuser);
				$result=curl_exec($ch);
				curl_close($ch);
				$user = json_decode($result, true);
				$avatarid[] = $user['response']['players'][0]['avatarfull'];
			}
		}
	?>
	<table class="table table-striped table-responsive table-bordered">
		<tbody>
			<tr>
				<td><center><img src="<?php echo $avatarid[0];?>" width="50px" height="50px"/></center></td>
				<td><center><img src="<?php echo $avatarid[1];?>" width="50px" height="50px"/></center></td>
				<td><center><img src="<?php echo $avatarid[2];?>" width="50px" height="50px"/></center></td>
			</tr>
			<tr>
				<td><center><img src="<?php echo $avatarid[3];?>" width="50px" height="50px"/></center></td>
				<td><center><img src="<?php echo $avatarid[4];?>" width="50px" height="50px"/></center></td>
				<td><center><img src="<?php echo $avatarid[5];?>" width="50px" height="50px"/></center></td>
			</tr>
			<tr>
				<td><center><img src="<?php echo $avatarid[6];?>" width="50px" height="50px"/></center></td>
				<td><center><img src="<?php echo $avatarid[7];?>" width="50px" height="50px"/></center></td>
				<td><center><img src="<?php echo $avatarid[8];?>" width="50px" height="50px"/></center></td>
			</tr>
			<tr>
				<td><center><img src="<?php echo $avatarid[9];?>" width="50px" height="50px"/></center></td>
				<td><center><img src="<?php echo $avatarid[10];?>" width="50px" height="50px"/></center></td>
				<td><center><img src="<?php echo $avatarid[11];?>" width="50px" height="50px"/></center></td>
			</tr>
			<tr>
				<td><center><img src="<?php echo $avatarid[12];?>" width="50px" height="50px"/></center></td>
				<td><center><img src="<?php echo $avatarid[13];?>" width="50px" height="50px"/></center></td>
				<td><center><img src="<?php echo $avatarid[14];?>" width="50px" height="50px"/></center></td>
			</tr>
		<tbody>
	</table>
</div>
  • Вопрос задан
  • 259 просмотров
Решения вопроса 1
Urvin
@Urvin
1. Вроде ничего криминального нет, чтобы вытягивать только одно-единственное изображение. Сделайте var_dump($result) после curl_close($ch), что там?
2. Steam API позволяет вытаскивать информацию о пользователях пачками до 100 штук.
Сначала выберите все steam_id в массив, а затем запросите у steam аватарки пачками — много сэкономите на запросах.
$steamids = [ .... ];
$uuser = "http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=".$steamauth['apikey']."&steamids=" . join(',', $steamids);


И не используйте mysql расширение!
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dzheka3d
@dzheka3d
foreach($avatarid as $val){
echo '<td><center><img src="<?php echo $val;?>" width="50px" height="50px"/></center></td>'
}


чтобы разбить по 3 в строку можно искользовать array_chunk($avatarid, 3)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы