2012-09-27 96 views
0

mySQL NOOB问题:

表中有一列= AgeGroup。它包含以下数据选项:U40,40-44,45-49,50-54,55-59,60+。

我有一个表单,允许用户选择他们希望查看的“性别”和“年龄组”。这然后使用“SELECT”SQL查询的“WHERE”子句。它使用以下格式:

FROM 
    #__test1 
WHERE 
    EventName = '2011EoSummer' AND 
    Gender = {$REQUEST:Gender}; 
    if(isset($_REQUEST['Age'])) AND AgeGroup = {$_REQUEST['Age']} 

在窗体中,有一个选项,通过“整体”让所有年龄段,但没有数据在AgeGroup列称为“整体”。总体上应该默认为所有年龄组,但我不知道这将如何读取SQL查询。

实施例1网址:/ &性别=男性& AgeGroup = U40 =>将在 'U40' '男性'

实施例2的URL显示数据:/ &性别=男性&年龄=总体=>将显示ALL年龄段数据

+0

我可以看到PHP /无论您用于连接到数据库,因为它会更容易处理。 –

+0

听起来你想要生成一个平均年龄组,这是正确的吗? –

+0

如果你准备在PHP端查询,然后放置条件并相应地准备查询。就像整体年龄段一样,不要把AgeGroup条款放在哪里。对于所有其他选项放置它。 – hemu

回答

0

如果我正在阅读此权限,当您选择“全部”时,您想要返回所有年龄组(以便不受任何年龄段的限制)?

如果是这样,您需要删除SQL语句中的AgeGroup子句。

<?PHP 

$sql = "SELECT * FROM tbl WHERE Gender = {$_REQUEST['gender']}"; 

if(isset($_REQUEST['age'])) 
{  
    $sql.= " AND AgeGroup = {$_REQUEST['age']}" 
} 

?> 

这将默认为整体,所以你可能想要适当地改变逻辑,希望我得到你以后的东西,如果不忽略它!

同样作为一个附注$ _REQUEST不是最好的使用,如果你使用表单作为你的动作收集器设置它发布和使用$ _POST,而不是使用$ _GET来拉出你的数据该网址而不是请求。

编辑:添加在括号内,以方便阅读。

+0

对不起......触摸困惑。这是我有: 其中 性别= {$ REQUEST:Gender} AND if(isset($ _ REQUEST ['Age']))AND AgeGroup = {$ _REQUEST ['Age']} 这似乎不工作..谢谢。 – chris

+0

我认为你试图在MySQL命令中做逻辑?你使用什么服务器端语言? – RyanS