计算和回应活动

时间:2014-05-08 03:37:37

标签: php mysql sql

我有一个数据库,用于存储task_cstm下的活动类型(游泳,跑步,足球,网球和篮球)。

另一个数据库存储任务中存储的salesman namedate_startdate_due

当我在phpMyAdmin上运行时,

SELECT COUNT( tasks_cstm.activity_type_c ) FROM tasks_cstm
LEFT JOIN tasks ON tasks.id = tasks_cstm.id_c
where tasks_cstm.activity_type_c ="swimming" and assigned_user_id="abcdefg"

我得到了我想要的结果:

但是我将其放入一个PHP文件中,该文件允许用户选择SALESMANDAT以查看销售人员在此期间未展示的活动数量:

$result = $GLOBALS['db']->query("SELECT tasks_cstm.activity_type_c, 
COUNT( tasks_cstm.activity_type_c ) FROM tasks_cstm tc 
LEFT JOIN tasks t ON t.id = tc.id_c 
WHERE activity_type_c='swimming' AND date_start>='$st' 
AND date_due<='$dt' AND assigned_user_id='$salesman' AND t.id=tc.id_c")

echo "<tr><td>".$result."</td></tr>";

有人可以帮助我并给我一些指导吗?

4 个答案:

答案 0 :(得分:0)

假设您使用的是mysqli_*个扩展程序,请尝试以下操作:

$result = $GLOBALS['db']->query("SELECT tasks_cstm.activity_type_c, 
COUNT( tasks_cstm.activity_type_c ) FROM tasks_cstm tc 
LEFT JOIN tasks t ON t.id = tc.id_c 
WHERE activity_type_c='swimming' AND date_start>='$st' 
AND date_due<='$dt' AND assigned_user_id='$salesman' AND t.id=tc.id_c")

while ($row = $result->fetch_array(MYSQLI_ASSOC))
  echo '<pre>';
  print_r($row);
  echo '</pre>';
}

我从您所呈现的内容中看到的关键问题是直接从$result跳转到仅回显$result而不是运行类似$result->fetch_array(MYSQLI_ASSOC)的内容来实际解析值。< / p>

但目前还不清楚你的期望是什么:

echo "<tr><td>".$result."</td></tr>";

这应该是一行数据吗?如果是这样,哪一块数据?或者那些<tr><td></td></tr>只是每个数据持有者?如果是这样,这可能适用于每行一个项目:

while ($row = $result->fetch_array(MYSQLI_ASSOC))
  echo '<tr><td>';
  echo $row['tasks_cstm.activity_type_c'];
  echo '</td></tr>';
}

或者这可能会为较大行中的每个项目设置一个表格单元格:

echo '<tr>';
while ($row = $result->fetch_array(MYSQLI_ASSOC))
  echo '<td>';
  echo $row['tasks_cstm.activity_type_c'];
  echo '</td>';
}
echo '</tr>';

答案 1 :(得分:0)

试试这个

$result = $GLOBALS['db']->query("SELECT tasks_cstm.activity_type_c, 
COUNT( tasks_cstm.activity_type_c ) AS totalCount FROM tasks_cstm tc 
LEFT JOIN tasks t ON t.id = tc.id_c 
WHERE activity_type_c='swimming' AND date_start>='$st' 
AND date_due<='$dt' AND assigned_user_id='$salesman' AND t.id=tc.id_c")

echo "<tr><td>".print_r($result)."</td></tr>";

答案 2 :(得分:0)

如果是,请在$ result中获取All Row数据然后在下面的代码中写入您将获得结果行数据 while($ row = mysqli_fetch_array($ result)){echo $ row [0]。 &#34; &#34; 。 $ row [1]; echo&#34;
&#34 ;;} 如果你没有在$ result中获取数据,那么首先检查连接然后执行查询。

答案 3 :(得分:-1)

谢谢大家的帮助。我得到了我想要的结果。

我做的是添加 ... SELECT tasks_cstm.activity_type_c,COUNT(tasks_cstm.activity_type_c)每个结果的AS TOTALCOUNT(0-4)。

并且对于每个结果(0-4)我需要另外一个fetchbyassoc,所以我输入

$r0= $GLOBALS['db']->fetchByAssoc($result0);
$r1= $GLOBALS['db']->fetchByAssoc($result1);
$r2= $GLOBALS['db']->fetchByAssoc($result2);
$r3= $GLOBALS['db']->fetchByAssoc($result3);
$r4= $GLOBALS['db']->fetchByAssoc($result4);

我也回应了这个

echo "<tr>
<td>".$r0['totalCount0']."</td>
<td>".$r1['totalCount1']."</td>
<td>".$r2['totalCount2']."</td>
<td>".$r3['totalCount3']."</td>
<td>".$r4['totalCount4']."</td>
</tr>";

是的,我得到了我需要的答案。非常感谢所有UR帮助(^ 3 ^)