2015-02-16 3 views
2

У меня есть форма, в которой пользователь может ввести возраст и выбрать пол, а затем возвращает все данные за этот конкретный возраст с этим конкретным полом.Отображение двух MySQL выбирает в одном запросе

Это запрос 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

Спасибо

  • причина я не могу просто выбрать * потому, что sBirthday поле первоначально только день рождения, следовательно, почему расчет необходимо выработать возраст.
+0

вы не поставили любое другое поле в запросе. он только вернет данные, которые вы просите об этом, ничего больше –

+0

@ Дагон жаль, что я должен был упомянуть, как бы я поместил другие поля? ive попробовал отдельный запрос, но потом он повторяет дату рождения, а не возраст – ili

ответ

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']."'"); 

заменить [ВСЕ ОСТАЛЬНОЕ] со списком полей, разделенных запятыми

в случае, если вы все еще хотите использовать * (но его обычно лучше не) вы можете просто сделать это:

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

Работает, спасибо! плохо принимать через несколько минут. – ili

Смежные вопросы