Как отобразить серийные номера с результатом запроса MySQL? - PullRequest
0 голосов
/ 29 октября 2011

У меня есть скрипт, который отображает информацию об этих полях - batchname, class, batchinstructor из таблицы «batch».Но я хочу отображать динамически генерируемый серийный номер на левой стороне, когда я показываю данные.Например:

 Serial Number    BatchName     Class              Batch Instructor  
  1.               Solar      Class Five                John
  2.               Lunar      Class six                 Bon Jovi

Я много пробовал, но это не работает.Не могли бы вы помочь мне решить эту проблему?Обратите внимание, что эти серийные номера не из базы данных.

Вот мой контроллер:

<?php
  class Batchlist extends CI_Controller{


                    function index(){

                    $this->load->library('pagination');


                    $config['base_url'] = base_url().'batchlist/index';
                    $config['total_rows'] = $this->db->get('batch')->num_rows();
                    $config['per_page'] = 20;
                    $config['num_links'] = 20;
                    $config['full_tag_open'] = '<div class="pagination" align="center">';
                    $config['full_tag_close'] = '</div>';

                    $this->pagination->initialize($config);

                    $this->load->model('mod_batchlist');
                    $data['records']= $this->mod_batchlist->batch_list($config['per_page'],$this->uri->segment(3));
                    $data['main_content']='view_batchlist';
                    $this->load->view('includes/template',$data);

                }   

}?>

Вот моя модель:

function batch_list($perPage,$uri) { 
                        $this->db->select('*');
                        $this->db->from('batch');
                        $this->db->join('teacher', 'batch.batchinstructor = teacher.teacherid');
                        $this->db->order_by('batchid','DESC');
                        $getData = $this->db->get('', $perPage, $uri);
                        if($getData->num_rows() > 0)
                        return $getData->result_array();
                        else
                        return null;
                        }

Вот мой взгляд

<h1>Batch List  </h1>
            <?php if(count($records) > 0) { ?>
            <table id="table1" class="gtable sortable">
            <thead>
                    <tr>

                        <th>Batch Name</th>
                        <th>Class</th>
                        <th>Batch Instructor</th>
                        <th>Edit/Delete</th>
                    </tr>
            </thead>
            <tbody>
            <?php foreach ($records as $row){ ?>


                    <tr>

                        <td><a href="<?php echo base_url(); ?>batch/<?php echo $row['batchid']; ?>"><?php echo $row['batchname'];?></a></td>
                        <td><?php echo $row['class'];?></td>
                        <td><?php echo $row['teachername'];?></td>
                        <td> <a href="<?php echo base_url(); ?>updatebatch/get/<?php echo $row['batchid']; ?>" title="Edit"><img src="<?php echo base_url(); ?>support/images/icons/edit.png" alt="Edit" /></a>
                             <a href="#" title="Delete"><img src="<?php echo base_url(); ?>support/images/icons/cross.png" alt="Delete" /></a>
                             </td>
                    </tr>
            <?php  } ?>

            </tbody>
            </table>
            <?php } ?>
            <div class="tablefooter clearfix">

                        <div class="pagination">
                        <?php echo $this->pagination->create_links(); ?> 
                        </div>
            </div>

Ответы [ 2 ]

4 голосов
/ 29 октября 2011

Может быть, я неправильно понял, но ... как насчет простого счетчика ??(после того, как вы заказали свои записи в SQL).Вам нужно перейти к просмотру количества элементов на странице (в этом фрагменте: $per_page), а затем получить текущую страницу из URI ($this->uri->segment(n)).

На странице 1 счетчик запускаетсяс (20 * 0) +1, т. е. 1. На странице 2 начинается с (1 * 20) +1, т. е. с 21, на стр. 3 с (2 * 20) +1, т. е. 41 и т. д. ...

  <?php 
   $cur_page = $this->uri->segment(n) ? intval($this->uri->segment(n)) : 1;
   $i = (($cur_page-1) * $per_page) +1;
   foreach ($records as $row) : 
   ?>
  <tr>
      <td><?php echo $i;?>.</td>
      <td><a href="<?php echo base_url(); ?>batch/<?php echo $row['batchid']; ?>"><?php echo $row['batchname'];?></a></td>
      <td><?php echo $row['class'];?></td>
      <td><?php echo $row['teachername'];?></td>
      <td> <a href="<?php echo base_url(); ?>updatebatch/get/<?php echo $row['batchid']; ?>" title="Edit"><img src="<?php echo base_url(); ?>support/images/icons/edit.png" alt="Edit" /></a><a href="#" title="Delete"><img src="<?php echo base_url();?>support/images/icons/cross.png" alt="Delete" /></a>
      </td>
</tr>
<?php 
      ++$i;
      endforeach;
 ?>

Вы можете разместить счетчик где угодно, я добавил столбец для простоты, но если вы хотите его где-то еще, просто поместите счетчик там.

0 голосов
/ 29 октября 2011

Вы сказали, что серийные номера не из базы данных. Откуда они тогда? Если вы хотите, чтобы база данных генерировала их, вы можете создать столбец с именем id, установить его в качестве первичного ключа и автоматически увеличивать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...