php - 允许用户使用 php mysql 在三种类型之间进行选择的搜索页面

标签 php mysql inner-join

我有一个包含三种搜索类型的搜索页面,我想根据选择类型过滤搜索

  • 类型 1:最新成员
  • 类型 2:按特化划分
  • 类型 3:按名称

特化表:

  • 特化_id
  • 专业名称

成员表:

  • 用户 ID
  • 名字
  • 姓氏
  • 特化
  • 注册日期

但问题是第一种类型工作正常,但第二种类型显示所有成员而不是所选专业

特化的第一个查询是从下拉列表中选择特化

第二个是特化表和成员表之间的联接 谁能帮我吗???

搜索.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 />
          ';


    }

}

最佳答案

您需要在 SQL 查询中使用 WHERE 子句。

SELECT ... JOIN ... WHERE u.specialization = '$selectedSpec'

关于php - 允许用户使用 php mysql 在三种类型之间进行选择的搜索页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16622674/

相关文章:

r - 如何根据R中的ID将一个数据帧中的列添加到另一个数据帧?

php - Mysql Php合并3个表

php - Mac os Sierra php-imap cli 工作缓慢

mysql 两个表的内连接

mysql - 使用 GROUP BY 获取最后一次出现的情况 - MySQL

php - MySql php 的重复结果

Codeigniter 3 - 查询生成器 'join' 方法 '!=' 运算符未提供预期输出

php - Symfony 自定义身份验证提供程序在请求重叠时注销

如果更改代码序列,php 到 mysql 的数据会丢失

php - MySQL插入和更新优化