mrp*_*atg 2 php mysql arrays foreach
所以我有一个问题(显然).我有以下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
Run Code Online (Sandbox Code Playgroud)
我写了一个函数来检索数据,然后返回它.
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;
}
Run Code Online (Sandbox Code Playgroud)
当我调用该函数时,如下所示
$info = ShowSetTeams("USER1");
Run Code Online (Sandbox Code Playgroud)
我明白了
ArrayArrayArray
Run Code Online (Sandbox Code Playgroud)
我尝试回显$ info [0],$ info [1]和$ info [2],但得到了这个
Arr
Run Code Online (Sandbox Code Playgroud)
所以info数组中的每一行都是结果数组.我应该可以做$ info [0] [0]并获得第一个ID值,从第一个结果开始吧?
Fatal error: Cannot use string offset as an array
Run Code Online (Sandbox Code Playgroud)
我不知所措.如何获取返回数组的每个值?更重要的是,我怎么能对他们进行foreach操作,比如
foreach( $info as $key => $value){
$key[0] //ID
$key[1] //TEAMNAME
$key[2] //TEAM
$key[3] //EVENT
}
Run Code Online (Sandbox Code Playgroud)
您正在使用字符串连接而不是数组表示法:
$push[] = array($id, $teamname, $team, $event);
Run Code Online (Sandbox Code Playgroud)
您也应该$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;
}
Run Code Online (Sandbox Code Playgroud)
除非你必须这样做,否则我不会将它重新键入数字索引数组 - 你只是在后面的代码中更难理解.使用mysql_fetch_assoc()要做到这一点
| 归档时间: |
|
| 查看次数: |
11295 次 |
| 最近记录: |