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

Display two MySQL selects in one query

我有一个表格,用户可以在其中输入年龄和 select 性别,然后 returns 具有该特定性别的特定年龄的所有数据。

这是 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,我该怎么做才能让其他字段都在字段中?

您需要添加您想要 select 的字段,如下所示:

$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> ';