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