Php 如何从数据库中获取值、求和并在codeigniter中显示它们?

Php 如何从数据库中获取值、求和并在codeigniter中显示它们?,php,mysql,database,codeigniter,mysqli,Php,Mysql,Database,Codeigniter,Mysqli,我想总结一列数据库与某些地方的标准,然后显示在网页上,但我不知道如何做到这一点 以下是我到目前为止在控制器中的功能 public function get_hours() { $user_email = $this->session->userdata('USER_EMAIL'); $this->db->where('USER_EMAIL', $user_email); $this->db->select_sum('USER_WORK_

我想总结一列数据库与某些地方的标准,然后显示在网页上,但我不知道如何做到这一点

以下是我到目前为止在控制器中的功能

public function get_hours() {
    $user_email = $this->session->userdata('USER_EMAIL');
    $this->db->where('USER_EMAIL', $user_email);
    $this->db->select_sum('USER_WORK_HOURS');
    $data = $this->db->get('user_hours');
    $hours = $data->row()->USER_WORK_HOURS;
    echo $hours;
}
这将把我带到一个空白页,不显示任何内容

我还尝试回显$数据,但收到一个错误,说它无法将其转换为字符串

以下是我的看法:

<!DOCTYPE html>
<html lang="en">
<body>
<div class="container">
   <h1>Members</h1>
   <?php
   echo "<pre>";
   print_r($this->session->all_userdata());
   echo "</pre>";
   $this->load->helper('date');
   echo "<h2>";
   echo $date = date('Y-m-d H:i:s');
   echo "</h2>";
   ?>
   <a href="<?php echo 'clock_in' ?>">Clock In</a> <br />
   <br />
   <a href="<?php echo 'clock_out' ?>">Clock Out</a> <br />
   <br />
   <a href="<?php echo 'get_hours' ?>">Get Hours</a> <br />
   <br />
   <a href="<?php echo 'main/logout' ?>">Logout</a> </div>
</body>
</html>

试试这个,不确定,但可能有用

SELECT SEC_TO_TIME( SUM( TIME_TO_SEC( `USER_WORKS_HOUR` ) ) ) AS timeSum
   FROM YourTableName WHERE `USER_EMAIL` = $email

试试这个,不确定,但可能有用

SELECT SEC_TO_TIME( SUM( TIME_TO_SEC( `USER_WORKS_HOUR` ) ) ) AS timeSum
   FROM YourTableName WHERE `USER_EMAIL` = $email

我知道,您不能直接调用mysql中的
TIME
datatype上的
SUM()
。您必须先使用
TIME\u to_SEC()
函数将其转换为数值,然后再将其转换回
TIME

我将为您提供有关此方法的direct SQL示例:

public function get_hours()
{


    $user_email = $this->session->userdata('USER_EMAIL');

    $this->db->where('USER_EMAIL', $user_email);

    $this->db->select_sum('USER_WORK_HOURS');

    $data = $this->db->get('user_hours');

    $hours = $data->result();

    echo $hours;

} 

在实际应用程序中运行SQL查询之前,可以先在phpmyadmin上测试SQL查询。干杯

据我所知,您不能直接调用mysql中的
TIME
datatype上的
SUM()
。您必须先使用
TIME\u to_SEC()
函数将其转换为数值,然后再将其转换回
TIME

我将为您提供有关此方法的direct SQL示例:

public function get_hours()
{


    $user_email = $this->session->userdata('USER_EMAIL');

    $this->db->where('USER_EMAIL', $user_email);

    $this->db->select_sum('USER_WORK_HOURS');

    $data = $this->db->get('user_hours');

    $hours = $data->result();

    echo $hours;

} 
在实际应用程序中运行SQL查询之前,可以先在phpmyadmin上测试SQL查询。干杯

试试这个

public function get_hours()
{

$user_email = $this->session->userdata('USER_EMAIL');

$this->db->select('SEC_TO_TIME( SUM( TIME_TO_SEC( `USER_WORK_HOURS` ) ) ) AS totalHours'); 
$this->db->where('USER_EMAIL', $user_email);
$hours= $this->db->get('user_hours')->row()->totalHours;

echo $hours;

} 
试试这个

public function get_hours()
{

$user_email = $this->session->userdata('USER_EMAIL');

$this->db->select('SEC_TO_TIME( SUM( TIME_TO_SEC( `USER_WORK_HOURS` ) ) ) AS totalHours'); 
$this->db->where('USER_EMAIL', $user_email);
$hours= $this->db->get('user_hours')->row()->totalHours;

echo $hours;

} 
试试这个:

public function get_hours()
{

$user_email = $this->session->userdata('USER_EMAIL');

$this->db->select('SEC_TO_TIME( SUM( TIME_TO_SEC( `USER_WORK_HOURS` ) ) ) AS workduration '); 
$this->db->where('USER_EMAIL', $user_email);
$query = $this->db->get('user_hours');
$hours = $query->result();

echo $hours[0]->workduration;
}
试试这个:

public function get_hours()
{

$user_email = $this->session->userdata('USER_EMAIL');

$this->db->select('SEC_TO_TIME( SUM( TIME_TO_SEC( `USER_WORK_HOURS` ) ) ) AS workduration '); 
$this->db->where('USER_EMAIL', $user_email);
$query = $this->db->get('user_hours');
$hours = $query->result();

echo $hours[0]->workduration;
}
试试这个

public function get_hours()
{

$user_email = $this->session->userdata('USER_EMAIL');

$this->db->select('SEC_TO_TIME( SUM( TIME_TO_SEC( `USER_WORK_HOURS` ) ) ) AS totalHours'); 
$this->db->where('USER_EMAIL', $user_email);
$hours= $this->db->get('user_hours')->row()->totalHours;

echo $hours;

} 
试试这个

public function get_hours()
{

$user_email = $this->session->userdata('USER_EMAIL');

$this->db->select('SEC_TO_TIME( SUM( TIME_TO_SEC( `USER_WORK_HOURS` ) ) ) AS totalHours'); 
$this->db->where('USER_EMAIL', $user_email);
$hours= $this->db->get('user_hours')->row()->totalHours;

echo $hours;

} 

谢谢你的回复。我在phpmyadmin中运行了它,它运行时显示为NULL。不知道为什么,这表明您的sql不正确。尝试在没有WHERE子句的情况下运行,是否有效?它在有WHERE子句和无WHERE子句的情况下运行。只是显示为空。奇怪,我觉得很好用。我想你的一些
USER\u WORKS\u HOUR
值是
NULL
,试着在USER\u WORKS\u HOUR不为NULL的地方添加
我让它工作了,那里有错误的列名。这是用户的工作时间。而不是用户工作小时。感谢您的回复。我在phpmyadmin中运行了它,它运行时显示为NULL。不知道为什么,这表明您的sql不正确。尝试在没有WHERE子句的情况下运行,是否有效?它在有WHERE子句和无WHERE子句的情况下运行。只是显示为空。奇怪,我觉得很好用。我想你的一些
USER\u WORKS\u HOUR
值是
NULL
,试着在USER\u WORKS\u HOUR不为NULL的地方添加
我让它工作了,那里有错误的列名。这是用户的工作时间。这给了我一个通知:“数组到字符串的转换”,并在页面上显示“Array”,而不是USER_WORKS_HOUR($hours);数组(1){[0]=>object(stdClass)#21(1){[“USER_WORK_HOURS”]=>NULL}}USER_WORK_HOURS是您的字段,这是我试图求和和和显示的列,是的。这给了我一个通知:“数组到字符串的转换”,并在页面try var_dump($HOURS)上显示“array”;数组(1){[0]=>object(stdClass)#21(1){[“USER\u WORK\u HOURS”]=>NULL}}USER\u WORK\u HOURS是您的字段,这是我试图求和和和显示的列,是的,很漂亮。谢谢你,真漂亮。非常感谢。