在一个查询中显示两个MySQL选择

时间:2015-02-16 00:00:14

标签: php mysql sql html-table

我有一个表单,用户可以在其中输入年龄并选择性别,然后返回该特定年龄段内具有该特定性别的所有数据。

这是我必须查找此数据的SQL查询:

 if($_POST['sRetrieve1']) 
    $queryRetrieve = mysql_query( "SELECT TIMESTAMPDIFF(YEAR, sBirthday, CURDATE()) 
    AS sBirthday FROM staffData WHERE TIMESTAMPDIFF(YEAR, sBirthday, CURDATE()) > 
    '".$_POST['qRetrieveAge']."' AND sGender='".$_POST['qRetrieveGender']."'");

然后通过

打印出来
echo ' <table id="myTable" class="tablesorter">';
echo ' <thead> ';
echo ' <tr> ';
echo '      <th>Gender</th> ';
echo '      <th>Fullname</th> ';
echo '      <th>Age</th> ';
echo '      <th>Job Title</th> ';
echo '      <th>Email</th> ';
echo '      <th>Contact no.</th> ';
echo '      <th>Address</th> ';
echo '      <th>Date Joined</th> ';
echo ' </tr> ';
echo ' </thead> ';
echo ' <tbody> ';

    while($info = mysql_fetch_array($queryRetrieve, MYSQL_ASSOC)) 
        { 

echo ' <tr> ';
echo '    <td>'.$info["sGender"].'';
echo '    <td>'.$info["sFN"].'';
echo '    &nbsp'.$info["sSN"].'';
echo '    <td>'.$info["sBirthday"].'</td> ';
echo '    <td>'.$info["sJobTitle"].'';
echo '    <td>'.$info["sEmail"].'</td>';
echo '    <td>'.$info["sPhone"].'</td> ';
echo '    <td>'.$info["sAddress"].'</td> ';
echo '    <td>'.$info["sDateJoined"].'</td> ';
echo ' </tr> ';
}  

但是这只是显示sBirthday,我怎么能这样做,所以其他领域都在哪里?

enter image description here

  • 我不能做select *的原因是因为sBirthday字段原本只是一个生日,因此为什么需要计算来计算年龄。

1 个答案:

答案 0 :(得分:2)

您需要添加要选择的字段,如下所示:

$queryRetrieve = mysql_query( "SELECT TIMESTAMPDIFF(YEAR, sBirthday, CURDATE()) 
AS sBirthday,sGender, sFN [ALL THE REST] FROM staffData WHERE TIMESTAMPDIFF(YEAR, sBirthday, CURDATE()) > 
'"

.$_POST['qRetrieveAge']."' AND sGender='".$_POST['qRetrieveGender']."'");

将[ALL THE REST]替换为逗号分隔的字段列表

如果您仍想使用*(但通常最好不要使用),您可以这样做:

$queryRetrieve = mysql_query( "SELECT *, TIMESTAMPDIFF(YEAR, sBirthday, CURDATE()) 
AS sBirthdayXXXXX  FROM staffData WHERE TIMESTAMPDIFF(YEAR, sBirthday, CURDATE()) > 
'"

.$_POST['qRetrieveAge']."' AND sGender='".$_POST['qRetrieveGender']."'");

然后只需更改

echo '    <td>'.$info["sBirthday"].'</td> ';

echo '    <td>'.$info["sBirthdayXXXXX"].'</td> ';