search page that allow user to select between three types using php mysql

我的未来我决定 提交于 2019-12-25 07:04:12

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!