2012-12-10 75 views
0

去trugh列兩次我有一個表,如下所示:計數多個值成一排,一排

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>"); 
} 

據我所知,這應該工作,但由於某種原因,它連續兩次在每列中反覆出現。

+0

*日期列數不固定* ...所以你有一個動態的列數或我讀錯了嗎?這聽起來不像db設計好...... –

回答

2

嘗試使用mysql_fetch_assoc()mysql_fetch_row()
mysql_fetch_array()返回每列兩次:爲[1]和[ '字段名']

+0

mysql_fetch_assoc()修復了這個問題。非常感謝你。 – user1872621

1

而且,你有另一個錯誤,更換你的下面一行:

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

這一個:

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

謝謝,甚至沒有注意到它 – user1872621