2013-01-22 43 views
0

想法:拉出特定状态或某个州的城市的路径列表。通过比较单元格Y和单元格Z中的信息从单元格X获取mysql值?

数据库表是wp_postmeta,我们将使用的表中的列是post_id,meta_key和meta_value。

POST_ID可以在多行相同 meta_key必须是“location_state”“location_city”或“trail_type”

所以经过数据库中的每一行,寻找post_meta.meta_value = 'Arizona',抓住post_id从同一row

THEN foreach post_id它在该状态下找到的值为post_meta.meta_key = 'trail_type'且匹配的post_id。这意味着post_id与线索相关联,而不是别的。返回在该状态下的路径的post_id的数组。 添加到名为$ trails_in_state的数组中

现在我们通过ID获得了一个状态中所有路径的列表。

我也想获得一个城市,国家的所有路径到一个单独的查询,这样我就可以说,当页面被击中

<?php if(isset($_GET['city']) AND isset($_GET['state'])) { 
    // GET AN ARRAY OF ALL post_id's OF TRAILS IN THAT CITY STATE COMBO 
} elseif(isset($_GET['state'])) { 
    // GET AN ARRAY OF ALL post_id's OF TRAILS IN THAT STATE 
} 

这里是表结构的图像http://imgur.com/ijhR1NZ

我使用WordPress,所以在这种情况下不能轻松使用mysqli。

+0

我不明白你问什么在这里。你只是在问SQL语句吗?你在问你的餐桌结构吗? – thatidiotguy

+0

我尝试并提供如此多的信息,以致令人困惑。我要求PHP代码返回数组,我是在之后。现在我必须为每个循环内部的每个循环运行多个循环,并且这是非常糟糕的糟糕的错误编码。 – Branndon

回答

1

我认为这些应该让你开始。第一个应该选择你所有的post_id,你的meta_value等于输入。我不知道为什么你需要限制州或城市的广泛比赛应该工作得很好。第二种选择是仅在城市进行过滤的更具体匹配。

SELECT trail_type FROM wp_postmeta WHERE POST_ID =(SELECT POST_ID FROM wp_postmeta WHERE meta_value = '亚利桑那')

SELECT trail_type FROM wp_postmeta WHERE POST_ID =(SELECT POST_ID FROM wp_postmeta WHERE meta_value ='亚利桑那和meta_key =“location_city”)

做不到这一点你无论是看多选择和排序或者一个UNION查询我只是不能让我周围的表结构头似乎直觉上我:(

+0

这是什么?你首先声明的是基于'where post_id = something'选择'post_id'。什么? – thatidiotguy

+0

所以有嵌套的MYSQL查询这样的事情吧?让我给这个旋转。 – Branndon

+0

这是我的代码'$ result =(“SELECT post_id FROM wp_postmeta WHERE post_id =(SELECT post_id FROM wp_postmeta WHERE meta_value = $ state)”); \t \t $ TEMP = mysql_fetch_array($结果);' 结果是一个错误 “警告:mysql_fetch_array():提供的参数是不是一个有效的MySQL结果资源” – Branndon

0

为什么你就不能使用这样的:

SELECT post_id FROM wp_postmeta WHERE meta_key = "State" AND meta_value = "mysql_escape_string($state)"

+0

因为这并不能告诉我它是否是一条线索。我也可以在这个州列出一家酒店。 – Branndon

相关问题