2015-03-18 46 views
0

这很简单,但我做不到。我有一个查询,我希望查询结果只显示一次。在我的代码中,课程的名称显示了很多次,就像我的行一样。我使用Codeigniter。我的代码是:返回结果表格查询 - 只显示在一行

foreach ($timetable as $row) { 
    echo $row->course_name; 
} 

我的查询是:

public function select_timetable() { 

     $this->db->select('sequence_num, topic, courses_specific_id, courses_common.course_name, 
     courses_specific.course_place, courses_common.courses_common_id, timetable.timetable_id'); 
     $this->db->from('timetable'); 
     $this->db->join('courses_common', 'courses_common.courses_common_id=timetable.courses_common_id'); 
     $this->db->join('courses_specific', 'courses_specific.courses_common_id=courses_common.courses_common_id'); 

     $this->db->where('courses_specific_id', $this->input->post('courses_specific_id')); 
     $result=$this->db->get(); 
       return $result->result(); 
    } 

var_dump($timetable[0])结果是:

object(stdClass)#27 (7) { 
    ["sequence_num"]=> string(1) "1" 
    ["topic"]=> string(10) "HTML tags " 
    ["courses_specific_id"]=> string(1) "1" 
    ["course_name"]=> string(4) "HTML" 
    ["course_place"]=> string(6) "Center" 
    ["courses_common_id"]=> string(1) "1" 
    ["timetable_id"]=> string(1) "1" 
} 

HTMLobject(stdClass)#27 (7) { 
    ["sequence_num"]=> string(1) "1" 
    ["topic"]=> string(10) "HTML tags " 
    ["courses_specific_id"]=> string(1) "1" 
    ["course_name"]=> string(4) "HTML" 
    ["course_place"]=> string(6) "Center" 
    ["courses_common_id"]=> string(1) "1" 
    ["timetable_id"]=> string(1) "1" 
} 

HTMLobject(stdClass)#27 (7) { 
    ["sequence_num"]=> string(1) "1" 
    ["topic"]=> string(10) "HTML tags " 
    ["courses_specific_id"]=> string(1) "1" 
    ["course_name"]=> string(4) "HTML" ["course_place"]=> string(6) "Center" ["courses_common_id"]=> string(1) "1" ["timetable_id"]=> string(1) "1" } HTML 
+1

请给我们查询请。另外,当你var_dump()或print_r()它时,$ timetable会显示什么? – MJoraid 2015-03-18 21:26:43

回答

2

要访问你必须做的是这样的结果:

<?php 
foreach ($timetable->result() as $row) 
{  
echo $row->course_name; 
} 
?> 

如果你想只显示一排,你需要做的是这样的:

if ($timetable->num_rows() > 0) 
{ 
$row = $timetable->row_array(); 
    echo $row['course_name']; 
} 

您也可以步行穿过你的不同行,如:

$row = $timetable->first_row() 
$row = $timetable->last_row() 
$row = $timetable->next_row() 
$row = $timetable->previous_row() 
+0

我尝试过:$ row = $ timetable; echo $ row ['course_name'];并注意:消息:未定义索引:course_name – 2015-03-18 22:11:25

+0

你刚才复制了我放在那里的整段代码吗?因为我有2个错误。你需要''row = $ timetable-> row_array()'注意'row_array()'。如果你不这样做,它不会是一个数组。 – dishrex 2015-03-18 22:18:07

+0

是的,我已经使用了返回$ result-> result();由于另一个查询,我用$ result-> row_array()创建了一个新的查询。现在没关系,谢谢! – 2015-03-18 22:22:24