所以我正在尝试我认为简单的循环记录结果。我的查询返回一行数据。我试图简单地将返回记录中每行的值拉入一个名为$ questions的变量中。但是,打印出来的var $ questions在每个空格中都有重复。它应该读取像Bob | Ted | Joe | Sally这样的东西,而不是它正在阅读Bob | Bob | Ted | Ted | Joe | Joe | Sally | Sally。为什么下面的代码在foreach循环中运行两次?
while ($row = mssql_fetch_array($result)){
foreach ($row as $col => $value) {
$questions.=$value."|";
}
}
echo "Questions: ".$questions."<br/>";
答案 0 :(得分:1)
根据PHP doc的mssql_fetch_array:
除了将数据存储在结果的数字索引中 数组,它还使用字段将数据存储在关联索引中 名称为键。
结果包括一个普通数组[0 ... n],每列有一个元素,但也有一个关联数组,其中每个值由一个以列名命名的键表示。
因此,如果您的第一列是Id,则可以通过两种方式从一行获取ID:
$id = $row[0];
# or you could do this
$id = $row['Id'];
这就是为什么在循环遍历行时得到每个值两次的原因。
答案 1 :(得分:1)
以下是您需要做的所有事情:
$questions = "";
while ($row = mssql_fetch_array($result)){
$questions .= $row['fieldName']."|";
}
echo "Questions: ".$questions."<br/>";
除了while()之外,foreach()是不必要的。