真的不想问这个因为我很确定它很简单但是:
我有一个用户数据库,其中包括邮政编码(zipcode)和出生日期的字段.
访问者可以按年龄和到他们自己位置的距离搜索用户.要做到这一点,我必须选择所有用户,然后计算他们的年龄,然后计算他们的距离,如下所示:
$result = queryMysql("SELECT user FROM table WHERE user !='$user' ORDER BY joindate DESC ");
$num = mysql_num_rows($result);
for ($j = 0 ; $j < $num ; ++$j)
{
$row = mysql_fetch_row($result);
if ($row[0] == $user) continue;
$query = "SELECT * FROM table WHERE user='$row[0]'";
$res=mysql_query($query);
$users=mysql_fetch_assoc($res);
//Get Date of Birth and Calculate Age
$dob = $users['age'];
$age = ...
//Get Profile's Postcode and Calculate Distance
$profilepc = $views['postcode'];
$distance = ...
if(($distance <200) AND ($age >18 AND <30)) {
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,没问题.然而,然后我想运行另一个查询(用于分页)只选择那些符合访问者设置的年龄和距离参数的用户,我可以在上面的IF语句中回显,但我不知道如何包含在新查询.
那么,我如何将第一个查询的结果放入某个东西(数组?),然后从第一个查询中使用user_id(它是唯一的)来仅为我的分页选择所需的用户?就像是:
SELECT * FROM $table WHERE user_id=(filtered user_id's) ORDER BY joindate DESC
Run Code Online (Sandbox Code Playgroud)
我希望这是有道理的.谢谢
用IN而不是=
SELECT * FROM $table
WHERE user_id IN (select user_id from other_table where some_condition)
ORDER BY joindate DESC
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
267 次 |
| 最近记录: |