2011-08-25 52 views
1

我有一个PHP脚本,我试图总结状态类型变量。例如,当我做到以下几点:PHP总状态列

echo $val['status']; 

我得到:

新新新死在处理新新新新新死新死死新新新在工艺

我想要做的是总结所有这些状态类型,并将它们放入变量:

$statusnew 
$statusdead 
$statusinprocess 

所以如果我要做一个:

echo $statusnew; 

我会被提交与“12”等等等等。我对PHP非常陌生,所以我试图找出最有效的方法来做到这一点。我知道有一个array_sum函数,但不知道它会在这里工作,因为我们不是数字值的总和。

循环:

if($_SESSION['partner'] == 1) 
{ 


$query = "select l.id as lead_id , l.account_name as account_name , l.first_name as first_name , l.last_name as last_name,l.date_entered as date_entered , lc.endpoints_c as endpoints , l.status as status from leads as l 
        join leads_cstm as lc on lc.id_c = l.id       
        where lc.account_id_c = '".$_SESSION['account_id']."' 
        and l.deleted = '0' and l.status <> 'Converted' order by date_entered DESC"; 


$db -> PS_Pagination($query, 20, 5, ""); 
$db -> setDebug(true); 
$rs = $db->paginate(); 
$num_rows = mysql_num_rows($rs); 

脚本进一步下跌:

 while($val = mysql_fetch_assoc($rs)) 
     { 
      $date_create = date("m/d/Y", strtotime($val['date_entered'])); 

我刚刚从@Joseph添加什么:

 $count = array(); // for graph 

    // then, in your loop: 
    if (array_key_exists($val['status'], $count)) 
    $count[$val['status']]++; 
    else 
    $count[$val['status']] = 1; 

    echo $count['New']; 
+1

在那里有一个循环吗?价值的来源是什么? – 2011-08-25 20:52:45

+0

我有:while($ val = mysql_fetch_assoc($ rs))和: $ db - > PS_Pagination($ query,20,5,“”); $ db - > setDebug(true); $ rs = $ db-> paginate(); \t \t \t \t \t \t \t \t \t \t \t \t?> – ipengineer

+0

因为行是在DB,你为什么不使用MySQL来返回计数。 – 2011-08-25 21:04:27

回答

2
$count = array(); 

while($val = mysql_fetch_assoc($rs)) 
{ 
    $date_create = date("m/d/Y", strtotime($val['date_entered'])); 

    if (array_key_exists($val['status'], $count)) 
     $count[$val['status']]++; 
    else 
     $count[$val['status']] = 1; 

    // continue with everything else being done in this loop 
} 

运行你的循环后,可以像这样访问计数:

$count['new']; // 12 
$count['dead']; // 4 
$count['in proccess']; // 2 
+0

我在这里定义哪些新的,死的和正在进行的以及哪些变量分配给他们? – ipengineer

+0

@ipengineer:你可以通过它们的数组键访问它们。看到我更新的答案。 –

+0

当我实现和echo $ count ['New'];我被退回:1 1 1 1 1 1 1我如何得到这些总计? – ipengineer