检查来自不同表的验证 - joomla

时间:2016-06-02 10:58:16

标签: php mysql joomla

我是joomla的新手。我正在使用RSDirectory组件。在这我必须自定义验证。我有一个名为rsdirectory.php的文件,该文件位于:管理员>组件> com_resdirectory> helpers> rsdirectory.php

我有一张桌子,桌子1。其中存储唯一代码。现在我想使用该代码填写表单(如果存在),然后查询将执行,否则我的验证代码将被执行。我已成功完成此操作。现在我有另一个表table2,当我填写具有唯一代码的表单时,我的数据存储在其中。我只是想检查我的唯一代码是否存在于table2中。如果存在验证将执行。我想为两者使用相同的功能。

这是我的代码。提前谢谢。

public static function uniquestacksfield($value, $column,$column1,$id1=null, $id = null){
    // Get DBO.

    $column = 'uni_code';

    $db = JFactory::getDBO();



    $query = $db->getQuery(true)

            ->select($db->qn('id'))

            ->from($db->qn('#_table1', 'e'))


            ->where($db->qn($column) . ' = ' . $db->q($value));

    $db->setQuery($query);

    $entry = $db->loadObject();



    if ($id) {

        $query->where($db->qn('e.id') . ' = ' . $db->q($id));

    }

       $db->setQuery($query, 0, 1);

         return $db->loadResult(); 

/ ------------------另一个查询----------------------- /

    $column1 = 'uni_code2';
        $db1 = JFactory::getDBO();     
       $query1 = $db1->getQuery(true)

            ->select($db1->qn('entry_id'))

            ->from($db1->qn('#_table2', 'c'))


            ->where($db1->qn($column1) . ' = ' . $db1->q($value));

    $db1->setQuery($query1);

    $entry1 = $db1->loadObject();



    if ($id1) {

        $query1->where($db1->qn('c_entry_id') . ' = ' . $db1->q($id1));

    }

       $db1->setQuery($query1, 0, 1);





     return $db1->loadResult();

}`

1 个答案:

答案 0 :(得分:0)

我认为以下代码可能会被使用。您现在可以尝试一下。根据您的标准更好地解释

 public static function uniquestacksfield($value, $column,$column1,$id1=null, $id = null){
    // Get DBO.
    $db = JFactory::getDBO();
    $column = 'uni_code';   
    $column1 = 'uni_code2'; 

    if($column == 'uni_code') {    
        $query = $db->getQuery(true)
                ->select($db->qn('id'))
                ->from($db->qn('#_table1', 'e'))
                ->where($db->qn($column) . ' = ' . $db->q($value));
        $db->setQuery($query);
        $entry = $db->loadObject();     
        if ($id) {
          $query->where($db->qn('e.id') . ' = ' . $db->q($id));
        }       
    } else {
        $query = $db->getQuery(true)
            ->select($db->qn('entry_id'))
             ->from($db->qn('#_table2', 'c'))
            ->where($db->qn($column1) . ' = ' . $db->q($value));
            $db->setQuery($query);
            $entry = $db1->loadObject();
        if ($id) {
            $query->where($db->qn('c_entry_id') . ' = ' . $db->q($id1));
        }   
    }

        $db->setQuery($query, 0, 1);
        $item = $db->loadResult(); 
    return $item; 
 }