同一个函数在同一个查询中传递不同的参数,同时得到两个输出


Same Function Passing different parameter in same query getting the both output at same time

我正在发送两个参数From=2015-08-01To=2015-08-31工作正常。然后如何同时传递参数(From2=2015-04-01 and To2 =2015-08-31)并获得两个输出。请不要编写任何其他函数。请告诉我。

  $res1=$con->selectnonschoolround1($From,$To);
  while($row=pg_fetch_array($res1))
  {
    $r1=$row['non_slsc_qty'];
    $r2=$row['non_slst_qty'];
    $r3=$row['non_slot_qty'];
    $r4=$row['non_slsc_ben'];
    $r5=$row['non_slst_ben'];
    $r6=$row['non_slot_ben']; 
    $Total_qty_non_r1=$row['total_qty']; 
    $Total_ben_non_r1=$row['total_ben']; 
  }

这是类。php

class DB_con
{
  function __construct()
  {
    $db = pg_connect("host=localhost port=5432 
    dbname=mydb  user=postgres password=123");
  }
  public function selectnonschoolround1($From,$To)
  {
      $res1=pg_query("SELECT
      SUM(non_slsc_qty) as non_slsc_qty,
      SUM(non_slst_qty) as non_slst_qty,
      SUM(non_slot_qty) as non_slot_qty,
      SUM(non_slsc_ben) as non_slsc_ben,
      SUM(non_slst_ben) as non_slst_ben,
      SUM(non_slot_ben) as non_slot_ben,
      SUM(non_slsc_qty+non_slst_qty+non_slot_qty) AS total_qty,
      SUM(non_slsc_ben+non_slst_ben+non_slot_ben) AS total_ben
      FROM table  where date BETWEEN '$From' AND '$To'");
      return $res1;
  }
}

将函数参数作为数组传递,然后您需要使用PHP函数is_array()检查参数是否为数组。如果它是一个数组,那么循环遍历该数组并使用"from"answers"to"索引执行查询,但是在这种情况下,您需要从执行的查询返回一个数组。如果它不是一个数组,则保持代码在else部分中的样子。在这种情况下,您可以对多个值或单个值使用相同的函数。只要记住,参数应该是正确的。希望这对你有帮助:)

尝试这段代码,并根据您的需要进行更改:)。

class DB_con
{
    function __construct()
    {
        //code
    }
    public function selectNonSchoolRound1($arr, $from = '', $to = '')
    {
        if (is_array($arr)) {
            $returnArr = array();
            foreach ($arr as $ars) {
                $res1 = pg_query("your query using ".$ars['from'].$ars['to']);
                array_push($returnArr, $res1);
            }
            return $returnArr;
        } else {
            $res1 = pg_query("your query using ".$from.$to.'variabls');
            return $res1;
        }
    }
}
try {
    $arr = array('0' => 
        array('from' => '2015-08-01', 'to' => '2015-08-31'), 
        '1' => array('from' => '2015-08-01', 'to' => '2015-08-31')
    );
    $obj = new DB_con();
    $result = $obj->selectNonSchoolRound1($arr);
    // loop here with the $result variable
} catch (Exception $ex) {
    echo $ex->getMessage();
}