我有一个数据库,用于存储task_cstm
下的活动类型(游泳,跑步,足球,网球和篮球)。
另一个数据库存储任务中存储的salesman name
,date_start
和date_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文件中,该文件允许用户选择SALESMAN
和DAT
以查看销售人员在此期间未展示的活动数量:
$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>";
有人可以帮助我并给我一些指导吗?
答案 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 ^)