【问题标题】:Same Function Passing different parameter in same query getting the both output at same time相同的函数在同一查询中传递不同的参数同时获得两个输出
【发布时间】:2015-11-29 05:07:34
【问题描述】:

我正在发送两个参数 From=2015-08-01To=2015-08-31 工作正常。那么如何同时传递参数(From2=2015-04-01 and To2 =2015-08-31) 并同时获取两个输出。请不要写任何其他函数。请给我建议。

这是我的输出.php

  $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']; 
  }

这是class.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 postgresql function return parameter-passing


    【解决方案1】:

    将函数参数作为数组传递,然后您需要使用 PHP 函数 is_array() 检查参数是否为数组。如果它是一个数组,则遍历该数组并使用“from”和“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();
    }
    

    【讨论】:

      猜你喜欢
      • 2012-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-25
      • 2011-11-07
      相关资源
      最近更新 更多