0

リクエストごとに50行の制限でデータをリクエストし、検索で見つける必要があります。

これはmysqlからデータを取得する私の関数です:

    function index()
   {
      $data['message'] = (validation_errors()) ? validation_errors() : $this->session->flashdata('message');


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

        $config = array();
        $config["base_url"] = base_url() . "products/index";
        $config["total_rows"] = $this->products_model->products_count();
        $config["per_page"] = ROWS_PER_PAGE;
        $config['num_links'] = 4;
        $config["uri_segment"] = 3;
        //$config['use_page_numbers'] = TRUE;
        $config['full_tag_open'] = '<div class="pagerSC">';
        $config['full_tag_close'] = '<div style="clear: left;"></div></div>';
        $config['cur_tag_open'] = '<span class="currentSC">';
        $config['cur_tag_close'] = '</span>';
        $config['prev_link'] = '&lt; Previous';
        $config['next_link'] = 'Next &gt;';

        $config['first_link'] = '&lt;&lt; First';
        $config['last_link'] = 'Last &gt;&gt;';

        $config['num_tag_open'] = '';
        $config['num_tag_close'] = '';
        $config['next_tag_open'] = '';
        $config['next_tag_close'] = '';
        $config['first_tag_close'] = '';
        $config['last_tag_open'] = '';

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



        $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
        $prods = $this->products_model->fetch_products($config["per_page"], $page);
        $data["links"] = $this->pagination->create_links();

        //$this->load->view("example1", $data);

      //$products = $this->products_model->getAllProducts();
      $warehouses = $this->products_model->getAllWarehouses();
      $warehouse = DEFAULT_WAREHOUSE;

      //if(!empty($products)) {
      foreach($prods as $product) {
      $id[] = $product->id;   
      $image[] = $product->image;   
      $code[] = $product->code;
      $name[] = $product->name;
      $size[] = $product->size;
      $cost[] = $product->cost;
      $price[] = $product->price;
      $qt = 0;
      foreach($warehouses as $house) {
          $warehouse_product = $this->products_model->getProductQuantity($product->id, $house->id);

                $qt += $warehouse_product['quantity'];

      }
      $quantity[] = $qt;
      $unit[] = $product->unit;
      $alert_quantity[] = $product->alert_quantity;
      }

      $keys = array("id","image","code","name","quantity","unit","size","cost","price","alert_quantity");

      $final = array();
      foreach ( array_map(null, $id, $image, $code, $name, $quantity, $unit, $size, $cost, $price, $alert_quantity) as $key => $value ) {
            $final[] = array_combine($keys, $value);
      }

      $data['rows'] = $final;
     // }
      $data['warehouses'] = $warehouses;
      $meta['page_title'] = $this->lang->line("products");
      $data['page_title'] = $this->lang->line("products");
      $this->load->view('commons/header', $meta);
      $this->load->view('content', $data);
      $this->load->view('commons/footer');
   }

そして、これはデータ結果を含む私のphpですが、mysqlからのすべてのデータです。ページネーション関数のようにリクエストに応じてロードする必要があります:

<table id="fileData" cellpadding=0 cellspacing=10 width="100%">
        <thead>
    <tr>
            <th style="width:45px;"><?php echo $this->lang->line("image"); ?></th>
            <th><?php echo $this->lang->line("product_code"); ?></th>
        <th><?php echo $this->lang->line("product_name"); ?></th>
        <th><?php echo $this->lang->line("quantity"); ?></th>
            <th><?php echo $this->lang->line("product_unit"); ?></th>
            <th><?php echo $this->lang->line("product_size"); ?></th>
        <th><?php echo $this->lang->line("product_cost"); ?></th>
         <th><?php echo $this->lang->line("product_price"); ?></th>
        <!-- <th><?php echo $this->lang->line("alert_quantity"); ?></th> -->
        <th style="width:45px;"><?php echo $this->lang->line("actions"); ?></th>
        </tr>
    </thead>
        <tbody>
        <?php foreach ($rows as $row):?>
            <tr>
            <td style="text-align:center;">
                <?php echo '<a class="ajax" href="uploads/' . $row['image'] .'"><img src="uploads/' . $row['image'] . '" alt="' . $row['image'] . '" width="24" height="24" /></a>'; ?></td>
                <td><?php echo $row['code']; ?></td>
            <td><?php echo $row['name']; ?></td>
            <td><?php echo $row['quantity']; ?></td>
            <td><?php echo $row['unit']; ?></td>
            <td><?php echo $row['size']; ?></td>
            <td><?php echo $row['cost']; ?></td>
            <td><?php echo $row['price']; ?></td>                
            </tr>
        <?php endforeach;?>
    </tbody>
    </table>
    <?php if($links) { echo $links; } else { echo "<div class=\"pagerSC\"></div>"; }?>

どんな助けでも大歓迎です。

4

2 に答える 2

0

50 レコードを取得する必要がある場合LIMIT 50は、SQL クエリの末尾に追加するだけです (上記のコードには表示されません)。

于 2012-12-15T00:41:46.790 に答える
0

MySQL を使用しているため、LIMIT 句を使用して結果を取得できます。リンクされたページに記載されているように:

LIMIT は 1 つまたは 2 つの数値引数を取り、両方とも非負の整数定数でなければなりません (準備済みステートメントを使用する場合を除く)。

2 つの引数がある場合、最初の引数は返す最初の行のオフセットを指定し、2 番目の引数は返す行の最大数を指定します。最初の行のオフセットは 0 (1 ではない) です。

于 2012-12-15T17:11:17.177 に答える