Как избежать повторения даты и номера ваучера? - PullRequest
0 голосов
/ 29 января 2019

Моя база данных

Таблица

Это моя база данных "журнал"

Я получил результат: Записи

Моя проблема в том, что я указал номер ваучера и дату только один раз, это повторяется в моем результате.Как отображать как единое целое.

Код моего контроллера:

        public function Journal_Print(){
        $data['startdate'] =$this->input->post('SDate');
            $data['enddate'] = $this->input->post('EDate');
            $PName  = $this->input->post('TName');

                $startdate = $this->input->post('SDate');
            $enddate = $this->input->post('EDate');
            $date = str_replace('/', '-', $startdate);
            $newDate = date("Y-m-d", strtotime($date));
            $date2 = str_replace('/', '-', $enddate);
            $newDate2 = date("Y-m-d", strtotime($date2));
            $data['startdate'] = $startdate;
            $data['enddate'] = $enddate;




    $this->db->where('Date >=',  $newDate);
          $this->db->where('Date <=',  $newDate2);



          $query = $this->db->get('journal');    
            $data['PName']=$query->result_array();
        //  print_r($data);

            $this->load->view('BookKeeping/Journal_Print', $data, FALSE);


}

Код страницы моего просмотра:

<?php foreach ($PName as $row): ?>

                            <tr>
                                <td><?php echo date('d/m/Y', strtotime($row['Date']));?></td>


                                    <td>

                                    <?php echo $row['Vno'];?></td>

                                <td><?php echo $row['Parti'];?></td>
                                <td class="price"><?php echo $row['Debit'];?></td>
                                <td class="price1"><?php echo $row['Credit'];?></td>

                            </tr>

                            <?php endforeach ?>

Как избежать этой проблемы

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Код этого контроллера

  $this->db->select('*');
    $this->db->distinct(    );
    $this->db->where('Date >=',  $newDate);
    $this->db->where('Date <=',  $newDate2);
    $result = $this->db->get('journal')->result_array(); 


            if($result){
                $finalArray = array();
                $checkArray = array();
                foreach ($result as $key => $value) {
                    if(in_array($value['Vno'], $checkArray)){
                        $finalArray[$value['Vno']][] = $value;
                    } else {
                        $checkArray[] = $value['Vno'];
                        $finalArray[$value['Vno']][] = $value;
                    }
                }
                $data['query'] = $finalArray; 

Изображение моего ответа введите описание изображения здесь

0 голосов
/ 29 января 2019

Во-первых, получите уникальные Date и Vno из БД

$this->db->select('Date, Vno');
$this->db->distinct();
$query = $this->db->get('journal')->result();    

Теперь используйте их, чтобы получить все записи из БД

$unique_date = array(); $unique_vno = array();
foreach($query as $row){
    array_push($unique_vno, $row->Vno);
    array_push($unique_date, $row->Date);  
 }

$this->db->select('*');
$this->db->where_in('Date',  $unique_date);
$this->db->where_in('Vno',  $unique_vno);
$query = $this->db->get('journal');    
$data['PName']=$query->result_array();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...