0

我正在研究 MVC 组件并从 joomla 2.5 中的两个表中获取数据,但我遇到了一个问题,航班信息有不同类型的票价,所以当它在表中显示输出时,它显示重复值这里是示例代码

询问

$query->select('f.flight_name,f.flight_code,f.flight_dep_date,f.flight_ari_date,f.flight_dep_time,f.flight_ari_time,f.flight_dep_city,f.flight_ari_city,f.flight_child_id,d.flight_id,d.fair_type,d.fair');
        $query->from('#__fairinfo as f,#__faredescription as d');
             $query->where('f.flight_child_id = d.flight_id');

在视野中

<?php foreach($this->items as $i => $value):
?>
    <tr class="row<?php echo $i % 2; ?>">
        <td>
            <?php echo $value->flight_child_id; ?>
        </td>
        <td>
            <?php echo JHtml::_('grid.id', $i, $value->flight_child_id); ?>
        </td>
        <td><?php echo $value->flight_name; ?></td> 
            <td><?php echo $value->flight_code; ?></td>
            <td><?php echo $value->flight_dep_date; ?></td>
            <td><?php echo $value->flight_ari_date; ?></td>
            <td><?php echo $value->flight_dep_time; ?></td>
            <td><?php echo $value->flight_ari_time; ?></td>
            <td><?php echo $value->flight_dep_city; ?></td>
           <td><?php echo $value->flight_ari_city; ?></td>
           <td><?php    
         echo $value->fair_type; 
             echo $value->fair; ?>
            </td>
         </tr>
<?php endforeach; ?>

这里出来了

4 G8-334    G8-334  2012-05-22  2012-05-22  11:10:00    13:05:00    MUMBAI (TERMINAL 1B)    NEW DELHI (TERMINAL 1D)     GoSmart7,566.00 INR  
4 G8-334    G8-334  2012-05-22  2012-05-22  11:10:00    13:05:00    MUMBAI (TERMINAL 1B)    NEW DELHI (TERMINAL 1D)     GoFlexi7,829.00 INR
4 G8-334    G8-334  2012-05-22  2012-05-22  11:10:00    13:05:00    MUMBAI (TERMINAL 1B)    NEW DELHI (TERMINAL 1D)     GoBusiness9,718.00 INR
4 G8-334    G8-334  2012-05-22  2012-05-22  11:10:00    13:05:00    MUMBAI (TERMINAL 1B)    NEW DELHI (TERMINAL 1D)     GOPROMO(ROUNDTRIP)7,136.00 INR
4 G8-334    G8-334  2012-05-22  2012-05-22  11:10:00    13:05:00    MUMBAI (TERMINAL 1B)    NEW DELHI (TERMINAL 1D)     GoSpecial Sold out/Not

第 4 行打印了 5 次,因为有五种票价

4

2 回答 2

1

请这样做

$query->select('f.flight_child_id,f.flight_name,f.flight_code,f.flight_dep_date,f.flight_ari_date,f.flight_dep_time,f.flight_ari_time,f.flight_dep_city,f.flight_ari_city,f.flight_child_id');
        $query->from('#__fairinfo as f');                

在视图中

<?php foreach($this->items as $i => $value):
?>
    <tr class="row<?php echo $i % 2; ?>">
        <td>
            <?php echo $value->flight_child_id; ?>
        </td>
        <td>
            <?php echo JHtml::_('grid.id', $i, $value->flight_child_id); ?>
        </td>
        <td><?php echo $value->flight_name; ?></td> 
            <td><?php echo $value->flight_code; ?></td>
            <td><?php echo $value->flight_dep_date; ?></td>
            <td><?php echo $value->flight_ari_date; ?></td>
            <td><?php echo $value->flight_dep_time; ?></td>
            <td><?php echo $value->flight_ari_time; ?></td>
            <td><?php echo $value->flight_dep_city; ?></td>
           <td><?php echo $value->flight_ari_city; ?></td>
           <td><?php 
                $model = $this->getmodel('Your model name');
                echo nl2br($model->functionname($value->flight_child_id));
            ?></td>
         </tr>
<?php endforeach; ?>

模型功能

functionname($id) {
        $db     = JFactory::getDBO();
        $query->select('d.flight_id,d.fair_type,d.fair');
        $query->from('#__faredescription as d');
        $query->where('d.flight_id ='.$id);
        $db->setQuery( $query );
        $rows    = $db->loadObjectList();
        foreach($rows as $row) {
            $rowss[] = $row->fair_type.','.$row->fair;
        }
        $row    = implode("\n", $rowss);
            return $row;
 }
于 2012-08-31T06:31:53.130 回答
0

重复值的原因:你的#__fairinfo表有 1 行,#__faredescription表有 4 行,所以只有它显示重复值

看起来你的期望是这样的

4 G8-334    G8-334  2012-05-22  2012-05-22  11:10:00    13:05:00    MUMBAI (TERMINAL 1B)    NEW DELHI (TERMINAL 1D)     GoSmart7,566.00 INR  
                                                                                                                        GoFlexi7,829.00 INR
                                                                                                                        GoBusiness9,718.00 INR
                                                                                                                        GOPROMO(ROUNDTRIP)7,136.00 INR
                                                                                                                        GoSpecial Sold out/Not

对 ?

于 2012-08-31T05:23:59.033 回答