所以我有个问题(很明显)。我有以下MySQL表数据
7 USER1 1,1,1,10,1 The Guys Team 8,7,13,14,16
8 USER1 1,1,1,10,1 The Girls Team 7,12,15
10 USER1 1,1,1,10,1 Dog Team 8,7,14,15我编写了一个函数来检索数据并返回它。
function ShowSetTeams($coach){
$result = mysql_query("SELECT * FROM `teams` WHERE coach = '$coach'") or trigger_error(mysql_error());
while($row = mysql_fetch_array($result)){
foreach($row AS $key => $value) { $row[$key] = stripslashes($value); }
$id = $row['id'];
$teamname = $row['teamname'];
$team = $row['team'];
$event = $row['event'];
$push .= array($id, $teamname, $team, $event);
}
return $push;
}当我调用该函数时,如下所示
$info = ShowSetTeams("USER1");我明白了
ArrayArrayArray 我试过回显$info,$info1和$info2,但是得到了这个
Arr信息数组中的每一行都是结果数组。我应该能够执行$info并从第一个结果获得第一个ID值,对吗?
Fatal error: Cannot use string offset as an array我不知所措。--如何获得返回数组的每个值?和更重要的是,我如何对它们运行foreach操作,例如
foreach( $info as $key => $value){
$key[0] //ID
$key[1] //TEAMNAME
$key[2] //TEAM
$key[3] //EVENT
}发布于 2009-10-12 07:58:16
您使用的是字符串连接,而不是数组符号:
$push[] = array($id, $teamname, $team, $event);您还应该在开始使用$push = array();之前初始化它。
你还做了很多额外的工作..。你可以这么做:
function ShowSetTeams($coach)
{
$push = array();
$result = mysql_query("SELECT id, teamname, team, event FROM `teams` WHERE coach = '$coach'") or trigger_error(mysql_error());
while($row = mysql_fetch_array($result, MYSQL_NUM))
{
// I doubt you actually need to run stripslashes on your data...
$row = array_map('stripslashes', $row);
$push[] = $row;
}
return $push;
}除非您必须这样做,否则我也不会将它重键到一个数字索引数组中--您只是在以后的代码中更难理解它。使用mysql_fetch_assoc()进行此操作
发布于 2009-10-12 07:58:59
不要连接$push,而是使用
$push[] = array();
return $push;还有几点意见:
*选择器。你用它给自己制造陷阱。相反,请指示要检索的确切列。,
$push[] = $row并执行fetch_assoc。
发布于 2009-10-12 08:01:09
我认为他们的问题在于这句话:
$push .= array($id, $teamname, $team, $event);它将$push视为字符串,并将被转换为字符串的数组连接起来。尝试:
$push[] = array($id, $teamname, $team, $event);https://stackoverflow.com/questions/1553279
复制相似问题