首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP foreach循环问题

问PHP foreach循环问题
EN

Stack Overflow用户
提问于 2011-02-18 13:14:21
回答 4查看 244关注 0票数 0

我有以下代码:

代码语言:javascript
复制
//generate 10 top tags
$tagSQL = mysql_fetch_array(mysql_query("SELECT * FROM tags"));
$topArray = array();
foreach($tagSQL as $poland)
{
    if($poland["tagID"] == 1)
    {
        $topArray[0] ++;
    }
    if($poland["tagID"] == 2)
    {
        $topArray[1] ++;
    }
    if($poland["tagID"] == 3)
    {
        $topArray[2] ++;
    }
    if($poland["tagID"] == 4)
    {
        $topArray[3] ++;
    }
}
function printTopTags()
{
    $n = 0;
    foreach($topArray as $buddha)
    {
        $n = $n + 1;
        if(sizeOf($topArray) > $n)
        {
            $hersheyBar = " ";
        }
        else
        {
            $hersheyBar = "";
        }
        $finalFinalEndArray = mysql_fetch_array(mysql_query("SELECT tagName FROM tags WHERE tagID = '$buddha'"));
        foreach($finalFinalEndArray as $waterBottle)
        {
            echo $waterBottle . $hersheyBar;
        }
    }   
}

我得到错误Warning: Invalid argument supplied for foreach() on line 93

第93行是foreach($topArray as $buddha)。

有什么帮助吗?

EN

回答 4

Stack Overflow用户

发布于 2011-02-18 13:19:26

http://ru.php.net/manual/en/language.variables.scope.php

也是

代码语言:javascript
复制
if($poland["tagID"] == 1)
{
    $topArray[0] ++;
}
if($poland["tagID"] == 2)
{
    $topArray[1] ++;
}
if($poland["tagID"] == 3)
{
    $topArray[2] ++;
}
if($poland["tagID"] == 4)
{
    $topArray[3] ++;
}

===

代码语言:javascript
复制
if ($poland["tagID"] >= 1 && $poland["tagID"] <= 4)
    $topArray[$poland["tagID"] - 1]++;
票数 1
EN

Stack Overflow用户

发布于 2011-02-18 13:29:41

代码语言:javascript
复制
$tagSQL = mysql_fetch_array(mysql_query("SELECT * FROM tags"));

这是非常糟糕的做法。如果查询由于任何原因而失败,mysql_query将返回boolean FALSE,然后您盲目地将其传递给mysql_fetch_array,它随后将依次失败,因为它期望的是mysql结果句柄,而不是布尔值,并返回布尔值本身。

然后在foreach循环中使用所有这些失败的数据,并想知道为什么除了错误之外什么都得不到?

票数 0
EN

Stack Overflow用户

发布于 2011-02-18 15:50:38

看起来printTopTags()函数中没有定义$topArray。您可以将其作为参数传递:

代码语言:javascript
复制
function printTopTags($topArray) {
...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5037876

复制
相关文章

相似问题

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