【问题标题】:Trying to create a PHP foreach loop that loops through an array to call an API and output into MySQL尝试创建一个 PHP foreach 循环,该循环遍历数组以调用 API 并输出到 MySQL
【发布时间】:2016-02-27 19:02:17
【问题描述】:

我刚刚在我已经工作的代码中添加了一个循环。我很确定是什么给我带来了麻烦,这是以下代码之一:

首先我有:

$teams = array(ARI, ATL, BAL, BUF, CAR, CHI, CIN, CLE, DAL, DEN, DET, GB, HOU, IND, JAC, KC, MIA, MIN, NE, NO, NYG, NYJ, OAK, PHI, PIT, SD, SEA, SF, STL, TB, TEN, WAS);

foreach ($teams as $value) {

$query_string = 'api_key='.$api_key.'&team=$value'; // Change team/month

这是将$query_string 设置为随着循环运行而变化的$value 的正确方法吗?

稍后在循环内部:

$sql = "CREATE TABLE $value . _GAMES ( ".  // Creating a new table for each team

这是将循环更改的$value 变量与我希望表名的其余部分连接起来的正确方法吗? (即我希望第一个循环创建表ARI_GAMES

【问题讨论】:

  • 我希望我的描述性回答可能对您有所帮助,以便更好地了解 PHP 数组应该如何以及如何在 PHP 中 concatenate strings

标签: php mysql arrays api loops


【解决方案1】:

$query_string改成

$teams = array('ARI', 'ATL', 'BAL', 'BUF');
foreach ($teams as $value) {

$query_string = 'api_key='.$api_key.'&team='.$value;

}

【讨论】:

  • 感谢您的快速回答!
  • 感谢您的快速回答!感谢你及时的答复!我从终端收到以下错误:无法创建表:未知数据库'ari' - 它必须引用数组中的第一个条目,ARI。当我在 PhpFiddle 上运行它时,我收到以下错误消息 E_NOTICE:类型 8 - 使用未定义的常量 ARI - 假定为“ARI” - 在第 9 行(第 9 行是我定义 $teams 数组的位置。)有什么想法吗?
【解决方案2】:

使用引号和大括号会很好

$teams = array('ARI', 'ATL', 'BAL', 'BUF');
foreach ($teams as $value) {
    $query_string = "api_key={$api_key}&team={$value}";

    //sql
    $sql = "CREATE TABLE {$value}_GAMES (.... ";
}

【讨论】:

    【解决方案3】:

    我认为亲爱的朋友,您需要了解更多关于PHP arrays 的知识。 首先,您的$teams 数组必须是一个带有字符串的数组,这些字符串是团队的名称,如下所示(注意:我已经缩短了团队数组的列表):

    $teams = array("ARI", "ATL", "BAL", "BUF", "CAR", "CHI", "CIN", "CLE", "DAL", "DEN", "DET");
    

    那么你需要了解 PHP 连接是如何工作的。例如,它是这样的:

    $someVar = 5;
    $concatenateVar = $someVar.' myOtherStringHere '.$someVar;
    echo $concatenatedVar;
    

    将打印出以下行:

    5 myOtherStringHere 5
    

    但是,我已经专门为您的问题编写了所需的代码。请尝试理解并从中学习。

    <?php
        $teams = array("ARI", "ATL", "BAL", "BUF", "CAR", "CHI", "CIN", "CLE", "DAL", "DEN", "DET");
    
        $api_key = "API_KEY_HERE";
    
        foreach ($teams as $value) {
            echo "start of another foreach-loop round<br/>";
            $query_string = 'api_key = '.$api_key.' team = '.$value; 
                echo $query_string;
            echo "<br/>";
            $sql = "CREATE TABLE $value._GAMES ( ";  // Creating a new table for each team
                echo $sql;
            echo "<br/>end of a foreach-loop round<br/>";
        }
    ?>
    

    【讨论】:

    • 感谢卡松!那真的很有帮助。我现在收到以下错误:无法将 JSON 数据添加到表中:不正确的整数值:'' for column 'nfl_game_id' at row 1 当我回显 API 调用时,数据如下所示:[{"nfl_game_id ":2009081350,"team":"ARI","对手":"PIT","totfd":22,"totyds":329,"pyds":259,"ryds":70,"pen":4, "penyds":27,"trnovr":2,"pt":6,"ptyds":266,"ptavg":37},......知道发生了什么吗?
    • 嘿,它很有帮助,那么您至少应该投票或接受作为答案! :-) 并将您的上述问题放在另一个 Stackoverflow 问题中。
    猜你喜欢
    • 2018-07-17
    • 1970-01-01
    • 2013-12-16
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    • 2017-03-22
    • 1970-01-01
    相关资源
    最近更新 更多