首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP-获取与api一起使用的单元格的值。

PHP-获取与api一起使用的单元格的值。
EN

Stack Overflow用户
提问于 2014-03-13 19:27:02
回答 1查看 200关注 0票数 1

对不起,如果这是个愚蠢的问题,我在PHP是个新手。

首先,我想做的是:

我正在从MYSQL中提取信息,并在页面上显示信息。具体而言,这一点:

代码语言:javascript
运行
复制
while($rowsID = mysql_fetch_assoc($sIDD))
{
echo '<tr>';
foreach($rowsID as $key => $cell){
    print '<td>'.$cell.'</td>';
}

这很好,并显示了我想要的信息。

从那个牢房里的信息,我想插入:

代码语言:javascript
运行
复制
$sid = $rowsID['steamID'];
$key = '<yoink>';
$slink =file_get_contents('http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=' .        $key . '&steamids=' . $sid . '&format=json');
$myarray = json_decode($slink, true);
print '<img src=';
print $myarray['response']['players'][0]['avatarmedium'];
print '>'; `

这不管用。它不会从单元格中提取实际数字并将其放入$sid中。我在这里不知所措。我在谷歌上搜索了几天,我的大部分代码都是从我在这里找到的部分中提取出来的,所以我甚至不确定我是否在正确的轨道上。我希望我已经清楚地解释了我的问题,并提供了足够的信息。谢谢你的帮助。

完整的代码:

代码语言:javascript
运行
复制
<?php
$hostname = "";   // eg. mysql.yourdomain.com (unique)
$username = "";   // the username specified when setting-up the database
$password = "";   // the password specified when setting-up the database
$database = "";   // the database name chosen when setting-up the database (unique)

$imgR =  "<td><img src='/images/red-dot2.png".$cell['red-dot2.png']."'></td>";
$imgG =  "<td><img src='/images/green-dot2.png".$cell['green-dot2.png']."'></td>";
setlocale(LC_MONETARY, 'en_US');
// Line 10
$_GET['id'];
$name = $_GET['id'];

$link = mysql_connect($hostname,$username,$password);
mysql_select_db($database) or die("Unable to select database");

$sql = "SELECT Members.PID, Members.ID, Members.Steam_Name, Members.SG_ID\n"
    . "FROM Members WHERE Members.PID = '$name%' ";

//Line 20
$gas = "SELECT Giveaways.title, Giveaways.cv, Members_1.Page, Giveaways.B, Giveaways.entries\n"
    . "FROM Members_1 INNER JOIN (Members INNER JOIN Giveaways ON Members.SG_ID = Giveaways.giver) ON Members_1.SG_ID = Giveaways.status\n"
    . "WHERE (((Members.PID)='$name'))";

$cvGiven = "SELECT Members.PID, Sum(Giveaways.cv) AS SumOfcv\n"
    . "FROM Members INNER JOIN Giveaways ON Members.SG_ID = Giveaways.giver\n"
    . "GROUP BY Members.PID\n"
    . "HAVING (((Members.PID)=$name)) ";

//Line 30
$winResults = "SELECT Giveaways.title, Members_1.Page, Giveaways.cv, Giveaways.B, Giveaways.entries\n"
    . "FROM Members INNER JOIN (Members_1 INNER JOIN Giveaways ON Members_1.SG_ID = Giveaways.giver) ON Members.SG_ID = Giveaways.status\n"
    . "WHERE (((Members.PID)=$name)) ";

$cvWon = "SELECT Members.PID, Sum(Giveaways.cv) AS SumOfcvW\n"
    . "FROM Members INNER JOIN Giveaways ON Members.SG_ID = Giveaways.status\n"
    . "GROUP BY Members.PID\n"
    . "HAVING (((Members.PID)=$name)) ";

$sID = "SELECT Members.ID\n"
    . "FROM Members\n"
    . "WHERE (((Members.PID)=$name))";

$get = "SELECT Members.PID, Members.SG_ID\n"
    . "FROM Members";

//Line 40

$result = mysql_query($sql,$link) or die("Unable to select: ".mysql_error());
$result2 = mysql_query($gas,$link) or die("Unable to select: ".mysql_error());
$cvTotal = mysql_query($cvGiven,$link) or die("Unable to select: ".mysql_error());
$cvTotalW = mysql_query($cvWon,$link) or die("Unable to select: ".mysql_error());
$wins = mysql_query($winResults,$link) or die("Unable to select: ".mysql_error());
$sIDD = mysql_query($sID,$link) or die("Unable to select: ".mysql_error());
$getN= mysql_query($get,$link) or die("Unable to select: ".mysql_error());


if (!$result) {
    die("Query to show fields from table failed");
}

if (!$result2) {
    die("Query to show fields from table failed");
}
if (!$cvTotal) {
    die("Query to show fields from table failed");
}
if (!$sIDD) {
    die("Query to show fields from table failed");
}

if (!$getN) {
    die("Query to show fields from table failed");
}

//Line 60
if (!$cvTotalW) {
    die("Query to show fields from table failed");
}
if (!$wins) {
    die("Query to show fields from table failed");
}


///////////////////////////////////////////////////////////////////////////////////
//////////////////////////Start Structure//////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////


//Display name
echo '<h2>[[Breadcrumbs?showHomeCrumb = 0  ]]</h2>';

//Display Steam ID
$sid = $rowsID['steamID'];
$key = '';

   $slink = file_get_contents('http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=' . $key . '&steamids=' . $sid . '&format=json');
   $myarray = json_decode($slink, true);
    print $myarray['response']['players'][0]['avatarmedium'];
   // print '>'; 
print $sid;


echo '<table>';

while($rowsID = mysql_fetch_assoc($sIDD))
{
echo '<tr>';
    foreach($rowsID as $key => $cell){
        print '<th>Steam ID:</th>'.'<td>'.$cell.'</td>';

    }
echo'</tr>';
}
echo '</table>';

//CV totals
$row = mysql_fetch_assoc($cvTotal);
$sum = $row['SumOfcv'];
$rowW = mysql_fetch_assoc($cvTotalW);
$sumW = $rowW['SumOfcvW'];

//Start CV table
echo '<div class=cv>';
echo '<table>';
echo '<tr>';
echo '<td>Total CV Given:</td>';
echo '<td> $'. number_format ($sum,2). '</td>';
echo '<tr>';
echo "<td>Total CV Won:</td>";
echo '<td> $'. number_format ($sumW,2). '</td>';
echo '</tr>';
echo "</tr>\n\n";
echo '</table>';
echo '</div>';




//Start Giveaways List
echo '<h3>Giveaways</h3>';
echo '<div class=llamatable>';
echo"<table>\n";
echo'<th>Game</th><th>CV</th><th>Winner</th><th></th><th>NB?</th><th>Entries</th>';


while($row = mysql_fetch_assoc($result2)) {



    print "<tr>\n";
      //Is it a bundle?
      foreach($row as $key => $cell){
       if ($key == 'B' && strpos($cell,'1') !== false){
         $cell = str_replace('1',$cell,$imgR);
        } 
        elseif($key == 'B' && $cell == "0"){
            $cell= $imgG;
       }
      //Set cv format
       if($key == 'cv'){
         $cell= '$'. number_format ($cell,2); //Line 80
        }
        //set breaks if multiple winners
       if (strpos($cell,',') !== false){
         $cell= str_replace(',','<br />',$cell);
        }
       if($key == 'status' && strpos($cell, $nameName)){
         $cell = $test;
       }        
        echo"<td>$cell</td>\n";

    }


    print "</tr>\n";


    //print "</br>\n";
}// End Giveaways list
//////////////////////////////////////////////////////////////////////////////////////////

print "</table>\n";
print "</div>";


//Start Wins List
echo '<h3>Wins</h3>';
echo '<div class=llamatable>';
//$fields_num = mysql_num_fields($results);
echo"<table>\n";
echo'<th>Game</th><th>Contributor</th><th>cv</th><th></th><th>NB?</th><th>Entries</th>';


while($row = mysql_fetch_assoc($wins)) {

    print "<tr>\n";
      //Is it a bundle?
      foreach($row as $key => $cell){
       if ($key == 'B' && strpos($cell,'1') !== false){
         $cell = str_replace('1',$cell,$imgR);
        } //Line 110
        elseif($key == 'B' && $cell == "0"){
            $cell= $imgG;
       }
      //Set cv amount
       if($key == 'cv'){
         $cell= '$'. number_format ($cell,2);
        }
        //set breaks if multiple winners
       if (strpos($cell,',') !== false){
         $cell= str_replace(',','<br />',$cell);
        }
        echo"<td>$cell</td>\n";

    }
print "</tr>\n";



}// End wins list
print "</table>\n";
    echo "</div>";



//echo '</table>';
//echo '</div>';
mysql_close($link);
?>

我意识到这段代码可能是一场灾难,我计划一旦它开始工作,并更充分地理解我所看到的,我就会清理它。我已经复制并修补了来自许多不同来源的代码,并尝试了自己的代码。别恨我。:-)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-14 01:59:38

有几个问题。首先,也是最重要的,在$rowsID变量有数据之前使用它。

代码语言:javascript
运行
复制
$sid = $rowsID['steamID']; 
        ^-------- You don't assign this a value until 12 lines later, here:

while($rowsID = mysql_fetch_assoc($sIDD))

其次,您应该而不是使用mysql_*函数。相反,您可以查看米斯里PDO,以替代不推荐的mysql函数。

第三,净化您的输入。您正在获取$_GET['id']中的值,并将其直接传递给查询。你好,小鲍比桌子。

解决这些问题应该能让你上路。

有几件事你可能想要考虑改进:

  • 如果我正确地阅读了您的查询,您是根据玩家名称查询的,对吗?如果两个人的名字是Llama,会发生什么?
  • 如果您要为每个用户查询蒸汽API,请构建一个由逗号分隔的配置文件ID字符串,然后在进行API调用时将所有这些(最多100个)传递给steamids变量。这减少了必须往返于Valve服务器的次数。
  • 我不知道您的数据库结构,但是这些查询中有几个看起来可以与一些漂亮的SQL结合在一起。如果您知道更复杂的SQL,最好减少对数据库的调用,以提高性能。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22388946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档