Php 2个表的动态搜索选项

Php 2个表的动态搜索选项,php,mysql,Php,Mysql,这是我的问题,这里涉及到两个表:TINVOICES和TJOBS TINVOICES - Job_no TINVOICES - Year TJOBS - Staff TINVOICES - Month TJOBS - Country TINVOICES - Paid TJOBS - Client_no TINVOICES - 30 Days 我希望搜索选项是动态的,就像它应该只接受搜索工作和年份一样。或者只付了钱或者只有一个月。。。等等我有两张桌子。 你能给我一个解决方法吗 见下面我的代码 非常

这是我的问题,这里涉及到两个表:TINVOICES和TJOBS

TINVOICES - Job_no
TINVOICES - Year
TJOBS - Staff
TINVOICES - Month
TJOBS - Country
TINVOICES - Paid
TJOBS - Client_no
TINVOICES - 30 Days
我希望搜索选项是动态的,就像它应该只接受搜索工作和年份一样。或者只付了钱或者只有一个月。。。等等我有两张桌子。 你能给我一个解决方法吗

见下面我的代码

非常感谢你

以下是我的搜索选项:



要使搜索动态,首先确保表单元素名称与数据库表字段中的名称完全相同。对于两个表,可以使用tablename和field作为表单元素名称的前缀。比如说

若数据库字段名是tinvoices表中的location,那个么location元素名应该是tinvoices\u location

因此,当表单提交时,您可以像这样循环浏览已发布的数据 假设您有两个表table1和table2

    $sql = "SELECT table1.*, table2.* FROM table1 INNER JOIN table2 ON table2.id = table1.table2_column WHERE ";

$conditions = array();
    foreach($_POST as $key => $value){
    $tableFields = explode('_', $key);
    $conditions[] = $tableFields[0].'.'.$tableFields[1].' = "'.$value.'"';   // will produce table1.location = "Qatar"
    }
$sql .= implode(' AND ', $conditions);  // will produce condtion1 AND condition2 and so on

$sql .= ' ORDER BY table1.column';
在循环中,您还可以使用

if(preg_match('/table1_/', $key)){
//populate conditions array
}

接下来,您可以根据需要对其进行修改。

要使搜索动态,首先确保表单元素名称与数据库表字段中的名称完全相同。对于两个表,可以使用tablename和field作为表单元素名称的前缀。比如说

若数据库字段名是tinvoices表中的location,那个么location元素名应该是tinvoices\u location

因此,当表单提交时,您可以像这样循环浏览已发布的数据 假设您有两个表table1和table2

    $sql = "SELECT table1.*, table2.* FROM table1 INNER JOIN table2 ON table2.id = table1.table2_column WHERE ";

$conditions = array();
    foreach($_POST as $key => $value){
    $tableFields = explode('_', $key);
    $conditions[] = $tableFields[0].'.'.$tableFields[1].' = "'.$value.'"';   // will produce table1.location = "Qatar"
    }
$sql .= implode(' AND ', $conditions);  // will produce condtion1 AND condition2 and so on

$sql .= ' ORDER BY table1.column';
在循环中,您还可以使用

if(preg_match('/table1_/', $key)){
//populate conditions array
}

接下来,您可以根据需要对其进行修改。

要使搜索动态,首先确保表单元素名称与数据库表字段中的名称完全相同。对于两个表,可以使用tablename和field作为表单元素名称的前缀。比如说

若数据库字段名是tinvoices表中的location,那个么location元素名应该是tinvoices\u location

因此,当表单提交时,您可以像这样循环浏览已发布的数据 假设您有两个表table1和table2

    $sql = "SELECT table1.*, table2.* FROM table1 INNER JOIN table2 ON table2.id = table1.table2_column WHERE ";

$conditions = array();
    foreach($_POST as $key => $value){
    $tableFields = explode('_', $key);
    $conditions[] = $tableFields[0].'.'.$tableFields[1].' = "'.$value.'"';   // will produce table1.location = "Qatar"
    }
$sql .= implode(' AND ', $conditions);  // will produce condtion1 AND condition2 and so on

$sql .= ' ORDER BY table1.column';
在循环中,您还可以使用

if(preg_match('/table1_/', $key)){
//populate conditions array
}

接下来,您可以根据需要对其进行修改。

要使搜索动态,首先确保表单元素名称与数据库表字段中的名称完全相同。对于两个表,可以使用tablename和field作为表单元素名称的前缀。比如说

若数据库字段名是tinvoices表中的location,那个么location元素名应该是tinvoices\u location

因此,当表单提交时,您可以像这样循环浏览已发布的数据 假设您有两个表table1和table2

    $sql = "SELECT table1.*, table2.* FROM table1 INNER JOIN table2 ON table2.id = table1.table2_column WHERE ";

$conditions = array();
    foreach($_POST as $key => $value){
    $tableFields = explode('_', $key);
    $conditions[] = $tableFields[0].'.'.$tableFields[1].' = "'.$value.'"';   // will produce table1.location = "Qatar"
    }
$sql .= implode(' AND ', $conditions);  // will produce condtion1 AND condition2 and so on

$sql .= ' ORDER BY table1.column';
在循环中,您还可以使用

if(preg_match('/table1_/', $key)){
//populate conditions array
}


接下来,您可以根据需要对其进行修改。

以何种方式动态修改?如果你能用一种我们能理解你想做什么,你想做什么,什么不管用的方式来表达你的问题,那就太好了。嗨,谢谢你的评论。我希望搜索选项是动态的,就像它应该只接受搜索工作和年份一样。或者只付了钱或者只有一个月。。。等等我涉及到两个表。您已经走上了正确的轨道,只需拆分“WHERE”部分,并将查询的第一部分保留为一个,这样就可以添加$sql=“select..”,然后以何种方式动态添加$sql.=“WHERE..”?如果你能用一种我们能理解你想做什么,你想做什么,什么不管用的方式来表达你的问题,那就太好了。嗨,谢谢你的评论。我希望搜索选项是动态的,就像它应该只接受搜索工作和年份一样。或者只付了钱或者只有一个月。。。等等我涉及到两个表。您已经走上了正确的轨道,只需拆分“WHERE”部分,并将查询的第一部分保留为一个,这样就可以添加$sql=“select..”,然后以何种方式动态添加$sql.=“WHERE..”?如果你能用一种我们能理解你想做什么,你想做什么,什么不管用的方式来表达你的问题,那就太好了。嗨,谢谢你的评论。我希望搜索选项是动态的,就像它应该只接受搜索工作和年份一样。或者只付了钱或者只有一个月。。。等等我涉及到两个表。您已经走上了正确的轨道,只需拆分“WHERE”部分,并将查询的第一部分保留为一个,这样就可以添加$sql=“select..”,然后以何种方式动态添加$sql.=“WHERE..”?如果你能用一种我们能理解你想做什么,你想做什么,什么不管用的方式来表达你的问题,那就太好了。嗨,谢谢你的评论。我希望搜索选项是动态的,就像它应该只接受搜索工作和年份一样。或者只付了钱或者只有一个月。。。等等我涉及到两个表。您已经走上了正确的轨道,只需拆分“WHERE”部分,并将查询的第一部分保留为一个,这样就可以添加$sql=“select..”。$sql.=“WHERE..”很好!我不知道。我现在就试试这个,然后再打给你。是的,我有相同的表单名和数据库字段名。谢谢。让它工作了!只要把一些小事情弄清楚就行了。谢谢兄弟!美好的我不知道。我现在就试试这个,然后再打给你。是的,我有相同的表单名和数据库字段名。谢谢。让它工作了!只要把一些小事情弄清楚就行了。谢谢兄弟!美好的我不知道。我现在就试试这个,然后再打给你。是的,我有相同的表单名和数据库字段名。谢谢。让它工作了!只要把一些小事情弄清楚就行了。谢谢兄弟!美好的我不知道。我现在就试试这个,然后再打给你。是的,我有相同的表单名和数据库字段名。谢谢。让它工作了!只要把一些小事情弄清楚就行了。谢谢兄弟!