我有一张产品表。我需要展示所有的产品。我在不同的条件下获取结果。
create table `products` (
`id` double ,
`category_id` double ,
`subcategory_id` double ,
`product_name` varchar (765),
`product_description` varchar (765),
`product_viewed` varchar (765),
`sale_wanted` tinyint (2),
`added_date` datetime ,
`updated_date` datetime ,
);
我需要像这样展示结果
1. The latest products (use of added date)
2. Most Wanted (Sorting by sale_wanted 1 for sale , 2 for wanted)
3. Most Viewed (Sorting by product_viewed)
4. Sorting by Specific Subcategory
所有结果都应以分页方式显示。如果我先得到结果就可以了。但是如果我使用分页链接,所有条件数据都将丢失,查询将不带任何条件地获取结果。我如何处理这种情况。请我不需要代码,我需要提示和建议。另一件事是我正在使用Codeigniter的分页类。
编辑过
这是我正在使用的模型方法
public function getProductsList($per_page=5,$page=0)
{
$info = $this->input->post();
if(isset($info['type']))
{
$type = $info['type'];
if($type == 'most_wanted'){
$where = " AND sale_wanted = 1";
$order_by = " ORDER BY ldc.added_date desc";
}else if($type == 'most_viewed'){
$where = " ";
$order_by = " ORDER BY ldc.product_viewed desc";
}else{
$where = " ";
$order_by = " ORDER BY ldc.added_date desc";
}
}else if(isset($info['sale_wanted']) AND isset($info['subcategory_id'])){
$sale_wanted = $info['sale_wanted'];
$subcategory_id = $info['subcategory_id'];
$where = " AND sale_wanted = $sale_wanted AND ldc.subcategory_id = $subcategory_id";
$order_by = " ORDER BY ldc.added_date desc";
}else if(isset($info['keyword'])){
$keyword = $info['keyword'];
$search_type = $info['search_type'];
$where = " AND ldc.$search_type like '$keyword%'";
$order_by = " ";
}else{
$where = " ";
$order_by = " ";
}
$num = 0;
if($page != 0){
$num = ($page * $per_page) - $per_page;
}
$sql_query = "
SELECT
ldc.id,
ldc.product_name,
ldc.product_viewed,
DATE_FORMAT(ldc.added_date, '%m/%d/%Y') as added_date,
ifnull(dc.name,'Unknown') as category,
dpi.product_image
FROM default_products AS ldc
LEFT JOIN default_manufacturers as dm ON dm.id = ldc.manufacturer
LEFT JOIN default_category as dc ON dc.category_id = ldc.category_id
LEFT JOIN ((select product_id , product_image from default_product_images group by product_id) as dpi)
ON dpi.product_id = ldc.id
WHERE approved = 1
$where
$order_by
LIMIT $num,$per_page
";
$query = $this->db->query($sql_query);
return $query->result();
}
我强烈推荐这两个关于codeigniter分页的免费教程-
视频教程,工作示例代码(可能需要将代码更新到CI 2.1),甚至评论中的一些有用信息。
CodeIgniter from Scratch:显示
CodeIgniter from Scratch:没有查询字符串的搜索结果http://net.tutsplus.com/tutorials/php/codeigniter-from-scratch-search-results-without-query-strings-2/
问题内容: 模型内部的方法: 然后,我试图将这些数据传递给控制器。控制器上的方法: 当我尝试在视图中列出数据时,出现以下错误: “致命错误:无法将类型为stdClass的对象用作数组” 这是我要列出的方法: 查看文件: 我认为我在观点上做错了。也许我没有正确地将数据传递给视图。有人可以告诉我我做错了吗?谢谢! 问题答案: 应该: 结果集是一个对象,因此每个列名称都是该对象的属性。您正在将它们作
问题内容: 我正在尝试从sql数据库中的php中显示结果,MySQL语句是正确的,并且可以在phpMyAdmin中执行我想要的操作,但是由于某种原因,我的代码在网页中中断了 这是代码 这就是我得到的 通常,我需要由表ID限制从最小值到最大值的随机数 问题答案: 您需要从查询获得的结果集中的每一行中获取数据。您可以为此使用。 将代码更改为此:
这篇文章展示了对DB2中的数据进行分页的一些操作: 在MySQL中,我可以使用 若要获取总行数,请执行以下操作。第一部分很容易在DB2的最新版本中复制。我在Google上找不到任何与第二个查询相当的结果(我不想要临时表、子查询或其他荒谬的低效解决方案)。
问题内容: 我有以下代码: 如果只有一个结果(因为我可以回显)就很好了,但是如果有很多结果,如何使它循环遍历并打印每一行? 我敢肯定这确实很简单,但是我不确定我需要在Google中搜索什么。 我正在寻找与之等效的东西: 问题答案: 只需将其替换为or :) 几乎所有功能都有相应的功能。
我有两种型号: 用户 用户有很多帖子。帖子有很多评论,评论属于帖子。这很简单。 现在我想加载所有的帖子的认证用户与它的评论,如果帖子有评论今天创建。如果帖子今天没有评论,它将不会被加载。这些帖子也将被分页。如何建立查询在laravel雄辩? 我试过这样的方法:
我试图使用查询字符串实现Codeigniter分页,但遇到了一些问题。我已经打开了 因此,使用查询字符串进行分页,但就我所知,当您使用查询字符串进行控制器和方法路由时,这确实是为了工作。然而,在我的情况下,我仍然使用URI段进行路由,但只是想使用查询字符串进行分页、过滤结果、搜索等。当我尝试使用http_build_query()重建的url与查询字符串发送通过它导致per_page(我已重命名为