0

次のようなテーブルがあります。

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回連続して通過します。

4

2 に答える 2

2

mysql_fetch_assoc()またはmysql_fetch_row()代わりに試してください。
mysql_fetch_array()[1] と ['fieldName'] のように、すべての列を 2 回返します。

于 2012-12-10T16:52:32.517 に答える
1

また、別のエラーが発生した場合は、次の行を置き換えてください。

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

これについて:

print("<td>$row['Name']</td>"); // name
于 2012-12-10T16:54:41.997 に答える