这段代码有什么问题?我试图返回一个数组并在调用函数中使用它。
function my_subjects()
{
$all_my_teams=my_teams();
$k=0;
$_subjects=array();
while($team=mysql_fetch_assoc($all_my_teams))
{
$q="SELECT $this->user_field FROM $team";
$r=mysql_query($q);
while($i=mysql_fetch_assoc($r))
{
$_subjects[k++]=$i;
}
}
return $_subjects;
}
注意:函数my_teams()返回的值类似于通过all_my_teams变量使用的$ r变量。它包含了所有团队的名字。
答案 0 :(得分:1)
error_reporting
以查看您的代码是否产生错误。if( ! $r=mysql_query($q) ) { die(mysql_error()); }
var_dump($_subjects);
查看数据是否符合您的预期。$k
无关紧要,只需使用$_subjects[]=$i;
即可。 [不会导致错误,只是更容易] 答案 1 :(得分:0)
while($i=mysql_fetch_assoc($r))
{
$_subjects[k++]=$i;
}
在这里,您还必须为$i
提供字段名称。像
while($i=mysql_fetch_assoc($r))
{
$_subjects[$k++]=$i["field_name"];
}
数组返回部分就好了。
编辑:您的变量 k 也缺少$符号。
答案 2 :(得分:0)
$_subjects[$k++] = $i;
应该没问题,因为你正在使用mysql_fetch_assoc()$i
将包含结果集的关联数组。
如果这是返回一个空数组(这是正确的问题吗?),你应该仔细检查你的sql是否正确并实际返回你期望的数据/数据。
编辑:就像Hanky Panky提到的那样,'k'在你的代码中缺少$符号 - 这可能是你的问题 - PHP应该为那个问题抛出一个解析错误,所以请确保你有{{3}启用。