Php 如何查询我的数据库以获得数组形式的结果?

Php 如何查询我的数据库以获得数组形式的结果?,php,codeigniter,codeigniter-2,Php,Codeigniter,Codeigniter 2,我的数据库表结构如下所示: wdt date teacherid 1 2011-01-11 1001 2 2011-01-11 1002 3 2011-01-12 1001 4 2011-01-12 1002 function index(){ $this->load->model('mod_teacher_

我的数据库表结构如下所示:

wdt        date            teacherid
1       2011-01-11           1001
2       2011-01-11           1002
3       2011-01-12           1001
4       2011-01-12           1002
function index(){


    $this->load->model('mod_teacher_workingday');
    $data['date']= $this->mod_teacher_workingday->get();

    $data['main_content']='view_teacher_workingday';
    $this->load->view('includes/template',$data);
  }
现在,我要做的是从teacherid=“1001”所在的表中选择日期字段,然后将结果作为如下数组返回-array(“2011-01-11”、“2011-01-12”)

因此,在我的视图文件中,我可以检查数组结果中是否存在特定数据,如下所示:

 if (in_array("2011-05-18", $date))       // here the $date would be the array result which -
                                        //  I am expecting to get from model via controller
        {
        echo "Found"; 
        } 
我的控制器如下所示:

wdt        date            teacherid
1       2011-01-11           1001
2       2011-01-11           1002
3       2011-01-12           1001
4       2011-01-12           1002
function index(){


    $this->load->model('mod_teacher_workingday');
    $data['date']= $this->mod_teacher_workingday->get();

    $data['main_content']='view_teacher_workingday';
    $this->load->view('includes/template',$data);
  }
请告诉我我的模型应该是什么样子,以便在我的视图文件中以数组的形式获得结果,并且我可以检查该数组中是否存在特定的数据,好吗?仅供参考,我正在使用Codeigniter


谢谢:)

为什么不使用mysql查找日期,这样效率会更高

Select teacherid from teachers where date = "2011-05-18" AND teacherid = 1001

如果您得到0个结果,您就知道这种组合不存在

为什么不使用mysql查找日期,这样效率更高

Select teacherid from teachers where date = "2011-05-18" AND teacherid = 1001
如果得到0个结果,则知道该组合不存在

应为:

$query = $this->db->select('date')
                  ->from('teachers')
                  ->where('teacherid',1001)
                  ->get();
$dates = array();
foreach($query->result() as $date)
{
  $dates[] = $date->date;
}
return $dates;
如果找不到该ID的结果,则返回的数组将为空。

应为:

$query = $this->db->select('date')
                  ->from('teachers')
                  ->where('teacherid',1001)
                  ->get();
$dates = array();
foreach($query->result() as $date)
{
  $dates[] = $date->date;
}
return $dates;

如果找不到该ID的结果,返回的数组将为空。

请帮个忙,下载一个支持数据库的IDE。Netbeans允许您通过JDBC驱动程序连接到数据库。您可以在应用程序内部动态执行原始查询。然后,一旦您确定了查询,只需将其传输到Codeigniter Active record或您正在使用的任何东西,或者只使用Active records原始查询。

帮个忙,下载一个具有数据库支持的IDE。Netbeans允许您通过JDBC驱动程序连接到数据库。您可以在应用程序内部动态执行原始查询。然后,一旦您确定了查询,只需将其传输到Codeigniter Active record或您正在使用的任何东西,或者只使用Active records原始查询。

您好,谢谢您的回复。。我尝试过你提到的方法,但是当我运行脚本时,我在“if(in_array(“2011-05-18”,“$date”)”中的视图中发现一个错误。。。。消息上说“message:in_array()[function.in array]:第二个参数的数据类型错误”嗯,我现在无法测试它,所以请对返回的数组进行var_dump()或print_r(),以查看它的实际外观。我不得不做一点小小的改变,它正是我想要的工作方式:)检查您代码的编辑部分:)谢谢manlol,我正要在这里编辑我在尝试代码后才意识到的错误!:)对不起,伙计,已经很晚了,我一定很累了。不管怎样,我很高兴你发现它很有用!干杯嗨,谢谢你的回复。。我尝试过你提到的方法,但是当我运行脚本时,我在“if(in_array(“2011-05-18”,“$date”)”中的视图中发现一个错误。。。。消息上说“message:in_array()[function.in array]:第二个参数的数据类型错误”嗯,我现在无法测试它,所以请对返回的数组进行var_dump()或print_r(),以查看它的实际外观。我不得不做一点小小的改变,它正是我想要的工作方式:)检查您代码的编辑部分:)谢谢manlol,我正要在这里编辑我在尝试代码后才意识到的错误!:)对不起,伙计,已经很晚了,我一定很累了。不管怎样,我很高兴你发现它很有用!干杯事实上,如果我真的喜欢你提到的方式,我必须在使用日历时进行365次不同的查询。从数据库中获取所有信息后。。在我的视图文件中,我只想检查数组结果中是否存在特定日期。如果存在,那么我要求php脚本选中复选框。谢谢:)事实上,如果我真的喜欢你提到的方式,我必须在使用日历时进行365次不同的查询。从数据库中获取所有信息后。。在我的视图文件中,我只想检查数组结果中是否存在特定日期。如果存在,那么我要求php脚本选中复选框。谢谢:)in_数组可以/应该替换为array_flip&&issetin_数组可以/应该替换为array_flip&&isset