Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在一行中计算多个值,在一行中计算两次列_Php_Mysql - Fatal编程技术网

Php 在一行中计算多个值,在一行中计算两次列

Php 在一行中计算多个值,在一行中计算两次列,php,mysql,Php,Mysql,我有一张这样的桌子: Name | date1 | date2 | date3 | etc.. per1 | status1 | | status2 | etc per4 | status2 | status3 | | etc 日期列的数量不是固定的。它们的值可以是状态,也可以为空 我想分别访问每一行的dates列的数据并处理这些数据 我想要实现的输出: Name | field1 | status1 | status2 | etc.. per1

我有一张这样的桌子:

Name | date1   | date2   | date3   | etc..
per1 | status1 |         | status2 | etc
per4 | status2 | status3 |         | etc
日期列的数量不是固定的。它们的值可以是状态,也可以为空

我想分别访问每一行的dates列的数据并处理这些数据

我想要实现的输出:

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>");
}
$confirm=“confirm”;
$accepted=“accepted”;
while($row=mysql\u fetch\u数组($result)){
$confirated\u cnt=0;
$accepted_cnt=0;
foreach(行作为$value){
if(strcmp($value,$confirmed))$confirmed_cnt++;
else if(strcmp($value,$accepted))$accepted_cnt++;
}
打印(“”);
打印(“$row[“Name”]”;//Name
打印(“$confirled”);//已确认
打印($accepted);//已接受
打印(“”);
}

据我所知,这应该是可行的,但出于某种原因,它会在一行中每列运行2次

试试
mysql\u fetch\u assoc()
或者
mysql\u fetch\u row()


mysql\u fetch\u array()
将每列返回两次:as[1]和as['fieldName']

尝试
mysql\u fetch\u assoc()
mysql\u fetch\u row()


mysql\u fetch\u array()
将每列返回两次:as[1]和as['fieldName']

此外,如果出现另一个错误,请替换以下行:

print("<td>$row["Name"]</td>"); // name
打印(“$row[“Name”]”;//名称
对于这一个:

print("<td>$row['Name']</td>"); // name
打印(“$row['Name']”;//名称

此外,如果出现另一个错误,请替换以下行:

print("<td>$row["Name"]</td>"); // name
打印(“$row[“Name”]”;//名称
对于这一个:

print("<td>$row['Name']</td>"); // name
打印(“$row['Name']”;//名称

日期列的数量不是固定的。。。所以你有一个动态的列数,还是我读错了?这听起来不像是好的db设计…日期列的数量不是固定的。。。所以你有一个动态的列数,还是我读错了?这听起来不像是好的数据库设计……mysql\u fetch\u assoc()修复了这个问题。非常感谢。mysql\u fetch\u assoc()修复了此问题。非常感谢。谢谢,我都没注意到。汉克斯,我都没注意到