php - 使用sql查询从多个表中搜索数据

标签 php mysql sql

在 mysql 数据库中,我有以下表格和 html 搜索表单。现在我想从多个表中搜索选定的数据(来自搜索表单)。所选数据可以是性别预算位置。至于位置,我有 7 张 table 。 (No. 2-8),当用户注册为该位置时,每 7 个表第二列值可以是 01。所以在此位置字段用户在搜索时可以选择中部或东部或西部或...其他。

那么如何编写 sql 查询(或 Sql Join 查询)来从 Mysql 表中获取结果进行搜索?

Php 变量:

$gender = inputvalid($_POST['gender']);
$budget = inputvalid($_POST['budget']);
$location = inputvalid($_POST['location']);

表名和列名

1. tutor_signup_form        (tutor_id, gender, feerange, name, email)
2. tutor_signup_pre_central (tutor_id, pre_c_central, place1, place2, place3)
3. tutor_signup_pre_west    (tutor_id, pre_w_west, place1, place2, place3)
4. tutor_signup_pre_east    (tutor_id, pre_e_east, place1, place2, place3)
5. tutor_signup_pre_south   (tutor_id, pre_s_south, place1, place2, place3)
6. tutor_signup_pre_north   (tutor_id, pre_n_north, place1, place2, place3)
7. tutor_signup_pre_ne      (tutor_id, pre_ne_northEast, place1, place2, place3)
8. tutor_signup_pre_nw      (tutor_id, pre_nw_northWest, place1, place2, place3)

我的搜索表单如下所示:

<tr>
    <td style="width:100px;">1. Gender:</td>
    <td>    
        <select name="gender">
        <option value="">--Select--</option>
        <option value="male">Male only</option>
        <option value="female">Female only</option>
        </select>
    </td>   
    </tr>
<tr>
    <td>2. Budget:</td>
    <td>
        <select name="budget">
        <option value="" SELECTED>--Select--</option>
        <option value="90">$90 and below</option>
        <option value="80">$80 and below</option>
        <option value="70">$70 and below</option>
        <option value="60">$60 and below</option>
        <option value="50">$50 and below</option>
        <option value="40">$40 and below</option>
        <option value="30">$30 and below</option>
        <option value="25">$25 and below</option>
        <option value="20">$20 and below</option>
        <option value="15">$15 and below</option>
        <option value="10">$10 and below</option>
        </select>
    </td>
</tr>
<tr>
    <td>3. Location:</td>
    <td>
    <select name='location'>
    <option value="" SELECTED>--Select--.</option>
    <option value='1' />Central City</option>
    <option value='2' />East City</option>
    <option value='3' />West City   </option>
    <option value='4' />South City  </option>
    <option value='5' />North City  </option>
    <option value='6' />North East  </option>
    <option value='7' />North West  </option>       
    </select>
    </td>
</tr>

最佳答案

你可以试试这个:已编辑

  if($location == '1'){
    $tableName="tutor_signup_pre_central";
    }
    if($location == '2'){
    $tableName="tutor_signup_pre_west";
    }

其他表也一样......然后是sql。

$sql = "select tutor_signup_form.*,$tableName.place1,$tableName.place2,$tableName.place3 from  tutor_signup_form left join $tableName on tutor_signup_form.tutor_id = $tableName.tutor_id where tutor_signup_form.gender= $gender and tutor_signup_form.feerange=$budget"; 

如果需要,可以进行一些修改。

关于php - 使用sql查询从多个表中搜索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25541465/

相关文章:

php - ffmpeg 没有从 php exec() 函数运行,从命令行工作

php - SQL 查询不工作!

PHP PDO/事务更新状态产生错误 (SQLSTATE[HY093] : Invalid parameter number: parameter was not defined)

mysql - 基于优先级的SQL查询案例

php - SQL - 根据单独表中相关条目的计数选择记录

php - Doctrine 2 : Query result as associative array

php - 将html文档中的英文数字转换为阿拉伯数字

mysql - 多选同一张表

sql - SQL 过程中的排序顺序

php - 从 sql 变量链接到 php/html 表