问题
i have a search page that include three types of search and i want to filter the search upon the selecting types
- type 1 : by newest members
- type 2 : by specialization
- type 3 : by name
specialization table:
- specialization_id
- specialization_name
members table :
- user_id
- first_name
- last_name
- specialization
- registered_date
but the problem that the first type work fine but the second it show all members not the selected specialization
the first query for the specialization is for selecting secialization from the drop list
the second is to join between the sepcialization table and the members tables can anyone help me ????
search.php
//************for specialization droplist***************************//
function specializationQuery(){
$specData = mysql_query("SELECT * FROM specialization");
while($recordJob = mysql_fetch_array($specData)){
echo'<option value="' . $recordJob['specialization_id'] . '">' . $recordJob['specialization_name'] . '</option>';
}
}
$outputlist = "";
//**********search by new***************************************//
if(isset($_POST['searchbynew']))
{
$listnew = $_POST['searchbynew'];
$sql = mysql_query("SELECT * FROM members WHERE registered_date!='' ORDER BY registered_date DESC ")or die((mysql_error("Error in quering new members List")));
while($row = mysql_fetch_array($sql))
{
$row_id = $row['user_id'];
$row_first_name = $row['first_name'];
$row_last_name = $row['last_name'];
$row_birthdate = $row['birth_date'];
$row_registered_date = $row['registered_date'];
////***********for the upload image*************************//
$check_pic="members/$row_id/image01.jpg";
$default_pic="members/0/image01.jpg";
if(file_exists($check_pic))
{
$user_pic="<img src=\"$check_pic\"width=\"120px\"/>";
}
else
{
$user_pic="<img src=\"$default_pic\"width=\"120px\"/>";
}
$outputlist.='
<table width="100%">
<tr>
<td width="23%" rowspan="3"><div style="height:120px;overflow:hidden;"><a href = "http://localhost/newadamKhoury/profile.php?user_id='.$row_id.'" target="_blank">'.$user_pic.'</a></div></td>
<td width="14%"><div align="right">Name:</div></td>
<td width="63%"><a href = "http://localhost/newadamKhoury/profile.php?user_id='.$row_id.'" target="_blank">'.$row_first_name.' '.$row_last_name.'</a></td>
</tr>
<tr>
<td><div align="right">Birth date:</div></td>
<td>'.$row_birthdate.'</td>
</tr>
<tr>
<td><div align="right">Registered:</div></td>
<td>'.$row_registered_date.'</td>
</tr>
</table>
<hr />
';
}//close while
}
if(isset($_POST['searchbyspec']))
{
$selectedSpec = $_POST['specialization'];
$sql = mysql_query("SELECT user_id,first_name, last_name, birth_date, registered_date, specialization_name
FROM members u INNER JOIN specialization s
ON u.specialization = s.specialization_id") or die(mysql_error("Error: quering thespecialization"));
while($row = mysql_fetch_array($sql))
{
$row_id = $row['user_id'];
$row_first_name = $row['first_name'];
$row_last_name = $row['last_name'];
$row_birthdate = $row['birth_date'];
$row_registered_date = $row['registered_date'];
$row_spec = $row['specialization_name'];
////***********for the upload image*************************//
$check_pic="members/$row_id/image01.jpg";
$default_pic="members/0/image01.jpg";
if(file_exists($check_pic))
{
$user_pic="<img src=\"$check_pic\"width=\"120px\"/>";
}
else
{
$user_pic="<img src=\"$default_pic\"width=\"120px\"/>";
}
$outputlist.='
<table width="100%">
<tr>
<td width="23%" rowspan="3"><div style="height:120px;overflow:hidden;"><a href = "http://localhost/newadamKhoury/profile.php?user_id='.$row_id.'" target="_blank">'.$user_pic.'</a></div></td>
<td width="14%"><div align="right">Name:</div></td>
<td width="63%"><a href = "http://localhost/newadamKhoury/profile.php?user_id='.$row_id.'" target="_blank">'.$row_first_name.' '.$row_last_name.'</a></td>
</tr>
<tr>
<td><div align="right">Birth date:</div></td>
<td>'.$row_birthdate.'</td>
</tr>
<tr>
<td><div align="right">Registered:</div></td>
<td>'.$row_registered_date.'</td>
</tr>
<tr>
<td><div align="right">Registered:</div></td>
<td>'.$row_spec.'</td>
</tr>
</table>
<hr />
';
}
}
回答1:
You need a WHERE
clause in the SQL query.
SELECT ... JOIN ... WHERE u.specialization = '$selectedSpec'
来源:https://stackoverflow.com/questions/16622674/search-page-that-allow-user-to-select-between-three-types-using-php-mysql