我有以下代码:
//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)。
有什么帮助吗?
发布于 2011-02-18 13:19:26
http://ru.php.net/manual/en/language.variables.scope.php
也是
if($poland["tagID"] == 1)
{
$topArray[0] ++;
}
if($poland["tagID"] == 2)
{
$topArray[1] ++;
}
if($poland["tagID"] == 3)
{
$topArray[2] ++;
}
if($poland["tagID"] == 4)
{
$topArray[3] ++;
}===
if ($poland["tagID"] >= 1 && $poland["tagID"] <= 4)
$topArray[$poland["tagID"] - 1]++;发布于 2011-02-18 13:29:41
$tagSQL = mysql_fetch_array(mysql_query("SELECT * FROM tags"));这是非常糟糕的做法。如果查询由于任何原因而失败,mysql_query将返回boolean FALSE,然后您盲目地将其传递给mysql_fetch_array,它随后将依次失败,因为它期望的是mysql结果句柄,而不是布尔值,并返回布尔值本身。
然后在foreach循环中使用所有这些失败的数据,并想知道为什么除了错误之外什么都得不到?
发布于 2011-02-18 15:50:38
看起来printTopTags()函数中没有定义$topArray。您可以将其作为参数传递:
function printTopTags($topArray) {
...
}https://stackoverflow.com/questions/5037876
复制相似问题