gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 13:01:22 25 4
gpt4 key购买 nike

这是我第一次使用 StackOverflow,我想知道是否有人可以帮助我解决以下场景。

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

现在,在结果页面上,我想添加一个小功能,用于显示门票可用或事件是否已售完的状态。

我创建了以下代码,但我想合并结果,因为例如:事件一可能有 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. ');
}
}

除非你有大量的事件,否则它不会对性能产生太大影响,像这样的循环数组很快。

关于php - Joomla - 合并列中的数据库结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23295996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com