在我的Joomla组件中,我有两个表:
表1:#__ com_units
Id | unit | posx | posy
------------------------
1 | 001A | 100 | 200
2 | 002A | 101 | 202
3 | 003A | 102 | 204
4 | 004A | 103 | 206
5 | 005A | 104 | 208
表1:#__ com_reservations
Id | unit | From | To | Mood (dropdown with value of Avaliable and Rented)
--------------------------------------------
1 | 001A | YYYY-MM-DD | YYYY-MM-DD |Available
2 | 002A | YYYY-MM-DD | YYYY-MM-DD |Rented
3 | 003A | YYYY-MM-DD | YYYY-MM-DD |Available
3 | 004A | YYYY-MM-DD | YYYY-MM-DD |Available
3 | 005A | YYYY-MM-DD | YYYY-MM-DD |Rented
我想要两个得到两个查询来将结果显示为按钮,但它不起作用:
1)一个用于租借单位
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$jinput = JFactory::getApplication()->input;
$query->select($db->quoteName(array('id', 'unit', 'mood', 'posx', 'posy')));
$query->from($db->quoteName('#__com_units', '#__com_reservations'));
$query->where($db->quoteName('unit')." = ".$db->quote('1'),'AND')
->where($db->quoteName('mood')." = ".$db->quote('rented'));
$db->setQuery($query);
$results = $db->loadObjectList();
foreach ($results as $result)
{
echo '<button class=" ' . $result->mood . ' ' . $result->posx . ' ' . $result->posy . '" value=' . $result->id . ' disabled> ' . $result->unit . '</button>';
}
2)一个用于有效单位
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$jinput = JFactory::getApplication()->input;
$query->select($db->quoteName(array('id', 'unit', 'mood', 'posx', 'posy')));
$query->from($db->quoteName('#__com_units', '#__com_reservations'));
$query->where($db->quoteName('unit')." = ".$db->quote('1'),'AND')
->where($db->quoteName('mood')." = ".$db->quote('available'));
$db->setQuery($query);
$results = $db->loadObjectList();
foreach ($results as $result)
{
echo '<button class=" ' . $result->mood . ' ' . $result->posx . ' ' . $result->posy . '" value=' . $result->id . ' disabled> ' . $result->Unit . '</button>';
}
3)如果我想在有效日期范围内对租借单位进行一次查询,该怎么办?
答案 0 :(得分:0)
如果你想从两个表中得到结果
,你的查询应该是这样的$db = JFactory::getDbo();
$query = $db->getQuery(true);
$jinput = JFactory::getApplication()->input;
$query->select($db->quoteName(array('a.unit', 'b.mood', 'a.posx', 'a.posy')));
$query->from($db->quoteName('#__com_units', 'a'));
$query->join('INNER', $db->quoteName('#__com_reservations', 'b') . ' ON (' . $db->quoteName('a.unit') . ' = ' . $db->quoteName('b.unit') . ')');
休息你的查询 你正在做unit = 1,我不知道如何给出001A,002A等单位。如果按照上面的语法,那就不会有任何错误。