计算一行中的多个值,连续两次遍历列

时间:2012-12-10 16:50:33

标签: php mysql

我的桌子看起来像这样:

Name | date1   | date2   | date3   | etc..
per1 | status1 |         | status2 | etc
per4 | status2 | status3 |         | etc

日期列的数量不固定。它们的值可以是状态,也可以是空的。

我想分别访问每行的日期列数据并处理数据。

我想要实现的输出:

Name | field1 | status1  | status2  | etc..
per1 | value  | #ofstat1 | #ofstat2 | etc

所以我得到了,在问题开头访问该表:

$confirmed ="Confirmed";
$accepted ="Accepted";

while ($row = mysql_fetch_array($result)) {

    $confirmed_cnt =0;
    $accepted_cnt =0;

    foreach ($row as $value) {
        if (strcmp($value, $confirmed)) $confirmed_cnt++;
        else if (strcmp($value, $accepted)) $accepted_cnt++;
    }
print("<tr>");
print("<td>$row["Name"]</td>"); // name   
print("<td>$confirmed</td>"); // confirmed
print("<td>$accepted</td>"); // accepted
print("</tr>");
}

据我所知,这应该可行,但由于某种原因,它连续两次通过每列。

2 个答案:

答案 0 :(得分:2)

请尝试mysql_fetch_assoc()mysql_fetch_row() mysql_fetch_array()两次返回每一列:[1]和['fieldName']

答案 1 :(得分:1)

此外,您还有其他错误,请替换以下行:

print("<td>$row["Name"]</td>"); // name

这个:

print("<td>$row['Name']</td>"); // name