Показать количество отображаемых результатов


Мы используем приведенный ниже код для фильтрации строк на основе выбранных с & По сегодняшний день.

Мы можем успешно фильтровать и отображать результаты.

Php

/* to show selected date */

if (isset($_POST['post_at']) && $_POST['post_at'] != '')
    {
    $orderFromDate = $_POST['post_at'] . "  00:00:00 ";
    }
    else
    {
    $orderFromDate = '';
    }

if (isset($_POST['post_at_to_date']) && $_POST['post_at_to_date'] != '')
    {
    $orderToDate = $_POST['post_at_to_date'] . "    23:59:59  ";
    }
    else
    {
    $orderToDate = '';
    }

/* to show selected date end*/

function getDesignerCollection()
{
    /* date search */
    if (isset($_POST['post_at']) && $_POST['post_at'] != '')
        {
        $orderFromDate = $_POST['post_at'] . " 00:00:00 ";

        }
        else
        {
        $orderFromDate = '';
        }

    if (isset($_POST['post_at_to_date']) && $_POST['post_at_to_date'] != '')
        {
        $orderToDate = $_POST['post_at_to_date'] . "    23:59:59  ";

        }
        else
        {
        $orderToDate = '';
        }
   /* date search end*/

    $accountType = $rows['type'];
    if ($accountType == "admin")
        {

        if ($orderFromDate != '') $order->addFieldToFilter('created_at', array(
            'gteq' => $orderFromDate
        ));
        if ($orderToDate != '') $order->addFieldToFilter('created_at', array(
            'lteq' => $orderToDate
        ));
        }

Форма

<form name="frmSearch" method="post" action="">
    <input type="text" placeholder="From Date" id="post_at" 

    value="<?php

if ($orderFromDate != '')
    {
    $newPostStartDate = date('Y-m-d', strtotime($_POST['post_at']));
    echo $newPostStartDate;
    } ?>" name="post_at"  />  

<input type="text" placeholder="To Date" id="post_at_to_date" 


value="<?php

if ($orderToDate != '')
    {
    $newPostEndDate = date('Y-m-d', strtotime($_POST['post_at_to_date']));
    echo $newPostEndDate;
    } ?>"name="post_at_to_date"  />

<input type="submit" name="search" value="search" id="searchButton">

    <input type="button" value="Reset" id="clear-dates">
    </form>

Jquery (Запрос)

jQuery.datepicker.setDefaults({
    showOn: "button",
    buttonImage: "assets/img/datepicker.png",
    buttonText: "Date Picker",
    buttonImageOnly: true,
    dateFormat: 'yy-mm-dd'
});
$(function() {
    $("#post_at").datepicker();
    $("#post_at_to_date").datepicker();
});

enter image description here

Теперь мы хотим отобразить , сколько строк выбрано. если результат будет таким, как на изображении выше, мы хотим отобразить "строки: 1". я очень новичок в php и пробовал приведенный ниже код, но он не отображается что угодно:

$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($result = mysqli_query($link, "SELECT entity_id , created_at  FROM sales_flat_order ORDER BY Name")) {

    /* determine number of rows result set */
    $row_cnt = mysqli_num_rows($result);

    printf("Result set has %d rows.\n", $row_cnt);

    /* close result set */
    mysqli_free_result($result);
}

Редактировать

Теперь мы хотим отобразить количество отображаемых строк. поэтому мы попробовали код ниже. его отображение похоже на изображение ниже. его отображение "строки =3". потому что он рассматривает столбец "entity_id" таблицы "sales_flat_order". но я хочу "строк: 9", как вы можете видеть 9 строк на изображении.

enter image description here

enter image description here

require_once '../../app/Mage.php';
Mage::app();

// specify the date picker date-format
$format = 'Y-m-d';


// if posted data are not empty
if(!empty($_POST['post_at']) && !empty($_POST['post_at_to_date']))
{

       if (!empty($_POST['post_at'])) {
           $dateFrom = DateTime::createFromFormat($format, $_POST['post_at']);
       }

       if (!empty($_POST['post_at_to_date'])) {
           $dateTo = DateTime::createFromFormat($format, $_POST['post_at_to_date']);
       }

        // Get the resource model
        $resource = Mage::getSingleton('core/resource');

       // Retrieve the read connection
          $read = $resource->getConnection('core_read');

      // MySQL query
        $query =  'SELECT entity_id, created_at, dproduct_id FROM sales_flat_order WHERE created_at BETWEEN :fromdate AND :todate ;';

// Bind MySQL parameters
$binds = array(
'fromdate' => $dateFrom->format('Y-m-d H:i:s'),
'todate' => $dateTo->format('Y-m-d H:i:s')
);
// Execute the query and store the results in $results
$results = $read->fetchAll($query,$binds);
echo "rows : ".count($results);
echo "<br>";
print_r($results);
}


else {
echo "error you have not specified any dates";
}

Полный код : http://pastebin.com/hMUEusvb

Author: Asim Zaka, 2016-12-19

4 answers

Вы можете подсчитать количество строк с помощью js. Добавьте следующий код в конце вашего кода. Замените selector1 именем класса, которое используется только для строк. Просмотрите свою страницу в браузере и найдите класс, который присутствует только в строках и используется один раз подряд. Затем замените selector2 классом или идентификатором, в котором вы хотите отобразить количество строк.

<script>    
$(document).ready(function () {
    var count = 0;
    //use class unique in each row.
    $("selector1").each(function () {
         count++;
    });
    //use class or id where you want to display count
    $("selector2").prepend("Number of rows "+count);
});

Если вы хотите, чтобы это было сделано с помощью PHP. Пожалуйста, вставьте код туда, где он отображает результат поиска. Ваш текущий код не работает, потому что ваш код отправляет ответ обратно в строку 293 файла http://pastebin.com/QKMj0k2p Вы можете найти это на вкладке "Сеть" браузера и посмотреть в разделе "Поиск", куда он отправляет запрос и что приходит в ответ оттуда. Если вы сможете найти, куда он отправляет ответ, будет легко узнать, какой код отображает строки. Это будет более полезно для решения вашей проблемы.

 0
Author: Asim Zaka, 2016-12-22 13:40:44

Вы можете посчитать выбранный идентификатор из самого запроса mysqli.. Попробуйте сделать это в своем запросе mysqli

   if ($result = mysqli_query($link, "SELECT count(entity_id) as Total_count,entity_id , created_at  FROM sales_flat_order ORDER BY Name")) {
    // Your process
}
 2
Author: Vijaya Vignesh Kumar, 2016-12-22 06:32:12

Я думаю, что у вас есть ошибка, которой нет в вашем вопросе. Если вы только хотите устранить эту проблему. Вы можете использовать JavaScript. Вам нужно только знать точный селектор.

$(document).ready( function (){
   //your selector would direct li or td if there is no other li td    then it works other wise you have select parent then li or td like below comment
   //$(".class li").length

   var count = $("li").length;
   $("yourCounter").html(count);
} );
 1
Author: Aabir Hussain, 2016-12-23 12:54:45

Ваш PHP код должен быть таким

// if posted data are not empty
if(!empty($_POST['post_at']) && !empty($_POST['post_at_to_date'])) { 
// specify the date picker date-format
  $format = 'Y-m-d';
// create dates
  $dateFrom = DateTime::createFromFormat($format, $_POST['post_at']);
  $dateTo = DateTime::createFromFormat($format, $_POST['post_at_to_date']);   
// if equal dates are applied to form 
  if($_POST['post_at']==$_POST['post_at_to_date']) {
    $dateTo->add(new DateInterval('T23H59M59S')); 
  }
// Get the resource model
  $resource = Mage::getSingleton('core/resource');    
// Retrieve the read connection
  $read = $resource->getConnection('core_read');
// MySQL query
  $query = 'SELECT `entity_id`, `created_at` FROM `sales_flat_order`  WHERE `created_at` BETWEEN :fromdate AND :todate ;';
// Bind MySQL parameters  
  $binds = array(
    'fromdate' => $dateFrom->format('Y-m-d H:i:s'),
    'todate' => $dateTo->format('Y-m-d H:i:s')
);
// Execute the query and store the results in $results
  $results = $read->fetchAll($query,$binds);
  echo "Orders count: ".count($results);
} else {
  echo "error you have not specified any dates";
}
 0
Author: Peter Darmis, 2016-12-22 19:12:05