Показать количество отображаемых результатов
Мы используем приведенный ниже код для фильтрации строк на основе выбранных с & По сегодняшний день.
Мы можем успешно фильтровать и отображать результаты.
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();
});
Теперь мы хотим отобразить , сколько строк выбрано. если результат будет таким, как на изображении выше, мы хотим отобразить "строки: 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 строк на изображении.
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
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 Вы можете найти это на вкладке "Сеть" браузера и посмотреть в разделе "Поиск", куда он отправляет запрос и что приходит в ответ оттуда. Если вы сможете найти, куда он отправляет ответ, будет легко узнать, какой код отображает строки. Это будет более полезно для решения вашей проблемы.
Вы можете посчитать выбранный идентификатор из самого запроса 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
}
Я думаю, что у вас есть ошибка, которой нет в вашем вопросе. Если вы только хотите устранить эту проблему. Вы можете использовать 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);
} );
Ваш 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";
}