2016-02-25 3 views
0

Что я хочу сделать здесь, когда я добавляю нового пользователя, $steamids получит это новое значение. Но проблема в том, что я не получаю информацию вообще. Похоже, что он не получает должным образом steam_id из базы данных. Что я могу сделать здесь?Передача значения от DB к API

<?php  
    $dbh = new PDO('mysql:host=localhost;dbname=csgo', 'root', ''); 
    $sql = "SELECT * FROM users"; 
    $users = $dbh->query($sql); 

    foreach($users as $r) {   
     $steamids = $r['steam_id'];   
     $APIKEY = '*******************'; 
     $steamAPI = "http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?steamids=$steamids&key=$APIKEY&format=json"; 
     $json_object = file_get_contents($steamAPI); 
     header('Content-Type: application/json'); 
     echo $json_object; 
    } 

Когда я добавляю только простой идентификатор в $steamids, чем он работает нормально. Но, очевидно, тогда я могу отображать только одного пользователя. Я хочу отобразить более одного, и я не знаю, что не так с моим кодом.

OK!EDIT

Так что я сделал это:

<?php 

$dbh = new PDO('mysql:host=localhost;dbname=csgo', 'root', ''); 

$sth = $dbh->prepare("SELECT steam_id FROM users"); 
$sth->execute(); 
$result = $sth->fetchColumn(); 

$steamids = $result; 

$APIKEY = '*******'; 

$steamAPI = "http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?steamids=$steamids&key=$APIKEY&format=json"; 
$json_object= file_get_contents($steamAPI); 
header('Content-Type: application/json'); 
echo $json_object; 

А теперь я получаю Steam_ID но только первой строки, как я должен получить всякие идентификаторы?

ответ

0

Возможно, это?

<?php 

error_reporting(-1); // Example where to add the PHP error reporting 
ini_set('error_reporting', E_ALL); // if error reporting is switched off 

header('Content-Type: application/json'); 

$dbh = new PDO('mysql:host=localhost;dbname=csgo', 'root', ''); 

$sth = $dbh->prepare("SELECT `steam_id` FROM `users`"); 

$APIKEY = '*******************'; 
$steamids = array(); 
if ($sth->execute()) { 
    while ($row = $sth->fetch(PDO::FETCH_ASSOC)) { 
     $steamids [] = $row["steam_id"]; 

     $steamAPI = "http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?steamids=". $row["steam_id"] ."&key=". $APIKEY ."&format=json"; 
     $json_object = file_get_contents($steamAPI); 

     echo $json_object; 

     sleep(1); // To pause the script for 1 second, OR try "usleep(500000);" for 0.5 second sleep, yes, "usleep". 
    } 
} 

echo "Test"; 
+0

Не работает .. Попадая ничего .. – feknuolis

+0

Даже не ошибка или что-нибудь подобное? Хммм. Попробуйте повторить что-то сразу после закрытия консоли if if и посмотреть, если это отражается, если это не так, тогда вы отключите ошибки PHP. Что вы можете включить для этого сеанса, добавив это в начало вашего файла PHP «error_reporting (-1); ini_set (« error_reporting », E_ALL); Отредактировал свой ответ, чтобы включить то, что я хочу, чтобы вы попробовали тест – Aaron

+0

Если у вас более одной строки, скажем, 2 строки, чем я ничего не получаю. Если это только одна строка в БД, я получаю информацию. – feknuolis

0

Дайте этот выстрел (Перебор с использованием выборки)

$dbh = new PDO('mysql:host=localhost;dbname=csgo', 'root', ''); 

$sth = $dbh->prepare("SELECT steam_id FROM users"); 
$sth->execute(); 
while($result = $sth->fetch()) 
{ 
    $steamids = $result['steam_id']; 
    $APIKEY = '*******'; 
    $steamAPI = "http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?steamids=$steamids&key=$APIKEY&format=json"; 
    $json_object= file_get_contents($steamAPI); 
    echo $json_object; 
} 
+0

. Я ничего не получаю прямо сейчас. – feknuolis

+0

Если у вас более одной строки, скажем, 2 строки, чем я ничего не получаю. Если это только одна строка в БД, я получаю информацию. – feknuolis

Смежные вопросы