2009-07-18 102 views
0

我正在开发一个物业租赁网站。搜索结果页面将包含属性结果列表。我打算重新定义结果,例如按城镇,国家,地产类型等。用CodeIgniter返回多维数组的唯一值PHP

因此,我们假设用户搜索“法国”。所有相关的属性将被返回并显示在列表中。

但是,我还需要重新使用此数组,以便仅显示来自搜索结果数组的唯一城镇名称。例如蒙彼利埃,里昂,雷恩,尼斯等。这个想法是,当用户点击'好',只有'好'属性会返回。我还想显示该镇有多少房屋。

最接近我想达到的例子。 http://www.miaandmaggie.com/dog-collars-leashes.html

任何想法如何使用我的搜索数组来显示搜索的独特城镇?

非常感谢!中号

+1

你没有说明你的代码有什么问题。你有错误吗?结果不是你所期望的吗? – jimyi 2009-07-18 15:53:55

回答

-1

你需要像一个双重条件在SQL语句中

"... where `country`='France' and `region`='Lyon'" 

我不知道我怎么你$this->db object的作品,但您的问题的假设,当你调用

$this->db->where('country',$country_code); 

这将覆盖你在上面做了几行:

$this->db->where('region',$region); 

and the final resul t是,你得到所有在法国不仅在里昂的属性

我认为你必须了解如何$this->db->where作品,并找出一种方法来指定第二个条件,你的SQL语句

+0

这不是事实 - CodeIgniter的ActiveRecord允许你多次调用它(它不会覆盖)。 – jimyi 2009-07-18 15:43:03

0

一对夫妇的事情,我注意:

  • 对于国家参数,只需直接传递国家代码,而不是有很多if-else块从几个国家中选择。
  • 是不是$Q->result_array()$data相同?除非你期望在循环中包含一个条件,否则你不需要循环。
  • dam也是正确的,你需要在查询中有2个(或可能更多)的条件来进一步过滤你的结果。
  • 我也注意到你正在查询单个表。您可能需要为国家,地区,房产类型,城镇等创建单独的表格以规范您的模式。