Joomla-合并列中的数据库结果

莫里克·米亚(Molik Miah)

这是我第一次使用StackOverflow,我想知道是否有人可以在以下情况下为我提供帮助。

我有一个运行RS Events Pro组件的joomla网站。它的工作方式是我发布事件列表,人们可以搜索事件,就像google一样,它显示结果列表。从结果中,您可以单击它以购买票证并查看更多详细信息。

现在,在结果页面上,我想添加一个小功能,该功能将提供票证状态或事件售罄。

我创建了以下代码,但是我想合并结果,因为例如:事件一可能具有3种不同类型的票证。第一种类型可能售罄,因此我的查询返回以下内容:'售罄。可用的。可用的。'

我想要它,所以如果所有票都卖完了,它只会显示“已售完”。

无论如何,您可以从数据库列中合并结果,因为如果可以的话,也许我可以合并给定事件的所有可用票证,并且如果它> = 1,那么我可以显示“可用票证”。

<?php
            $db = &JFactory::getDBO();
            $db->setQuery("SELECT * FROM #__rseventspro_tickets WHERE ide = '".$event->id."'");
            $tickets = $db->loadObjectList();

              foreach($tickets as $ticket)
              {
                if($ticket->seats >= '1'){
                    echo('Tickets available. ');

                }
                else{
                    echo('Sold out. ');
                }

              } 
              ?>

这是我的数据库表转储-我希望这会有所帮助:

--
-- Table structure for table `tkmrf_rseventspro_tickets`
--

CREATE TABLE IF NOT EXISTS `tkmrf_rseventspro_tickets` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `ide` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `price` float NOT NULL,
  `seats` int(10) NOT NULL,
  `user_seats` int(10) NOT NULL,
  `description` text NOT NULL,
  `position` text NOT NULL,
  `groups` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=27 ;

--
-- Dumping data for table `tkmrf_rseventspro_tickets`
--

INSERT INTO `tkmrf_rseventspro_tickets` (`id`, `ide`, `name`, `price`, `seats`, `user_seats`, `description`, `position`, `groups`) VALUES
(19, 65, 'Standard', 5, 190, 0, 'Standard ticket for entry to the club.', '', ''),
(20, 65, 'VIP Tables', 50, 10, 0, 'Get the VIP treatment! \r\nYour very own table and a bottle of Champagne to get you started.', '', ''),
(23, 68, 'Standard', 5, 0, 0, 'standard entry. prices are higher on the door.', '', ''),
(22, 67, 'Fast-Track', 5, 0, 0, 'Queue jump with the fast track tickets!', '', ''),
(24, 68, 'Queue Jump', 8, 0, 0, 'don''t wait around in the cold, pay a few quid more and jump the queue!', '', ''),
(25, 77, 'vip', 60, 500, 10, 'ticket description', '', '{"0":"1"}'),
(26, 77, 'cheap tickets', 5, 0, 0, 'ticket description', '', '{"0":"1"}');
    enter code here
乔纳斯

您可以在sql查询中进行群组通话,但是处理起来很尴尬。在这种情况下,只需花一些额外的时间就可以轻松完成结果,例如:

$available=array(); 
foreach($tickets as $ticket)
{ 
    if( !isset($available[$ticket->ide])) { $available[$ticket->ide]=true; }
    $available[$ticket->ide]=$available[$ticket->ide]?
    $ticket->seats > 0:$available[$ticket->ide]; 
}
// now like you said, only
foreach($tickets as $ticket)
{   
    if($available[$ticket->ide]){
        echo('Tickets available. ');
    }
    else{
        echo('Sold out. ');
    }
} 

除非您有非常多的事件,否则它将在性能方面产生很大的不同,像这样的循环数组会很快。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章