代码之家  ›  专栏  ›  技术社区  ›  Zachary

oscommerce产品列表显示不准确的计数和每页结果

  •  0
  • Zachary  · 技术社区  · 16 年前

    http://www.roguevalleyroses.com/rose_list.php?search_id=&class=&height=&growth=&color=&bloom_size=&bloom_type=&shade=&fragrance=&disease=&rebloom=&thorns=&zone=&hybridizer=Ashdown%20Roses&date_range=&text=&view=&show=&page=4

    这是页面。查询结果的代码如下: http://pastebin.com/d51bfa53f

    我搞不懂商业是如何运作的。如果你还需要什么请告诉我。此外,这是SQL查询、PHP循环或某些数学中常见的问题吗?我希望被指出正确的方向,不一定需要一个确切的答案,因为这是一个黑客/定制的oscommerce。

    2 回复  |  直到 10 年前
        1
  •  1
  •   shiva    16 年前

    我不认为这是垃圾邮件。

    这是OScommerce的常见问题。当涉及到查询时,esp自定义贡献会增加更多的麻烦。oscommerce导航类不支持使用distinct或group by子句。也就是说,当它计算记录时,它不考虑那些关键字。您需要修改拆分页结果类来修复此问题。

    干杯 湿婆

        2
  •  2
  •   Gerv    10 年前

    问题出在oscommerce代码无法处理的“group by”子句中-在splitresults类文件中。为此挣扎了一段时间,这是我第一次尝试修复它:

    if (strpos($sql_query, 'group by')) {
        $reviews_count_query = tep_db_query("select count(*) as total from (select count(*)" . substr($sql_query, $pos_from) .") as GroupedResult");
    } else {
        $reviews_count_query = tep_db_query("select count(*) as total " . substr($sql_query, $pos_from, ($pos_to - $pos_from)));
    }
    //$reviews_count_query = tep_db_query("select count(*) as total " . substr($sql_query, $pos_from, ($pos_to - $pos_from)));
    

    但是,通过进一步的测试,它也不能正常工作。然后我花了一些时间研究到底发生了什么,发现类似的代码已经存在于 https://github.com/osCommerce/oscommerce2/blob/bda6f6df3e4ab027b72ecfe6a96ac70b6774b312/catalog/admin/stats_customers.php#L40-L45

    在这里,您可以看到splitpageresults类是“group by”子句……然后下面是“fix”,用于将正确数量的客户放入numRows查询中。然后,该查询被splitpageresults分配以使“显示y结果的x”。