从多维数组中的查询中获取数据

时间:2014-01-08 20:44:18

标签: php mysql sql arrays pdo

我花了很多时间试图找到做以下事情的方法,并尽可能多地进行研究,但仍然陷入困境。

我有一张桌子' pool_a'那一刻有2列 - team_id和team_name。

我需要将id和名称回显到嵌套的foreach循环中。 现在我可以这样做,如果我只是担心这个名字,但现在我的查询也包含了ID,我无法解决如何获取表格中每一行的两位数据。

以下是我如何使用team_name ...

for ($i=0;$i<$num;$i++) {
    $team=mysql_result($result,$i,'team_name');
    $team_names[$i] = $team;
    echo $team . "<br>";
}

foreach ($team_names as $team) {
  foreach ($team_names as $opposition) {
     if ($team != $opposition) {
   echo "<tr><td>" . $team . "<td><input type=\"text\"<td>versus<td><input type=\"text\">" .    $opposition . "</tr>";
      }
   }

}

这很好,并输出正确的灯具列表和分数输入框,但我需要添加一个隐藏数据输入,其中team_id为值。例如:

这是我到目前为止所拥有的。请注意,我一直在学习PDO和新的5.5技术,因此您会注意到我的代码风格在下一个代码段中会有所不同。

require_once "pdo_enl_connect.php";
$database=dbNB_connect();



$query=$database->query ("SELECT team_id, team_name from pool_a");

while ($row = $query->fetch(PDO::FETCH_NUM)) {

  printf ("%s %s<br>", $row[0], $row[1]);

  $teams=array($row[0], $row[1]); 

}

foreach ($teams as $key=>$value) {
echo "$key and $value<br>";
}



$database=NULL;

我为foreach循环得到的输出是

0和5 1和Silhouettes // Silhouette是表格中的最后一支队伍。

非常感谢您的帮助,如果我可以编辑我的问题以便以任何方式更清楚,请告诉我。

由于

2 个答案:

答案 0 :(得分:1)

你的while循环应如下所示:

$teams = array();
while ($row = $query->fetch(PDO::FETCH_NUM)) {
    // $row and array($row[0], $row[1]) are the same here
    $teams[] = $row;
} 

答案 1 :(得分:0)

  1. 您需要在循环之前初始化$team = array();
  2. 然后通过执行array_push($teams, array($row[0], $row[1]));或$ teams [] = array($ row [0],$ row [1]);`
  3. 将您的元组添加到teams数组中