php mysql 实现一个站内搜索 两个表查询多条记录语句怎么写 谢谢
表一:insecticide字段:IDPTNAIAMW表二:crop(ID和PTN是表一insecticide中的ID和PTN)字段:IDPTNCROPPEST想要实现:...
表一 : insecticide
字段:ID PTN AI AMW
表二 : crop (ID 和 PTN 是表一insecticide中的ID 和 PTN)
字段:ID PTN CROP PEST
想要实现:
1) 在 index.php中,给出任一字段进行搜索,就显示出满足那一字段的所有信息。
2) 若给出 PTN 和crop, 那要满足表一insecticide中PTN 为 $_POST['TN'] 并且表二crop中 PTN 也为 $_POST['TN'] ,表一表二的ID也要相同。
表二crop中的CROP 为$_POST['Crops']
并且要满足表一中 AMW like '%".$_POST['AMW']."%'
(若index.php中 AMW 的textarea填了要搜索的信息)
表二中 PEST like '%".$_POST['PEST']."%'
(若index.php中 PEST 的textarea填了要搜索的信息)
显示满足所有条件的记录。
谢谢了! 展开
字段:ID PTN AI AMW
表二 : crop (ID 和 PTN 是表一insecticide中的ID 和 PTN)
字段:ID PTN CROP PEST
想要实现:
1) 在 index.php中,给出任一字段进行搜索,就显示出满足那一字段的所有信息。
2) 若给出 PTN 和crop, 那要满足表一insecticide中PTN 为 $_POST['TN'] 并且表二crop中 PTN 也为 $_POST['TN'] ,表一表二的ID也要相同。
表二crop中的CROP 为$_POST['Crops']
并且要满足表一中 AMW like '%".$_POST['AMW']."%'
(若index.php中 AMW 的textarea填了要搜索的信息)
表二中 PEST like '%".$_POST['PEST']."%'
(若index.php中 PEST 的textarea填了要搜索的信息)
显示满足所有条件的记录。
谢谢了! 展开
1个回答
展开全部
$tn = $_POST['TN']?$_POST['TN']:'';
$crops = $_POST['Crops']?$_POST['Crops']:'';
$amw = $_POST['AMW']?$_POST['AMW']:'';
$pest = $_POST['PEST']?$_POST['PEST']:'';
// 把×换成你要查找的字段,post值需要过滤,加强安全性
$sql = "select * from insecticide a left join crop b on a.ID=b.ID where a.PTN like'%$tn%' and b.CROP like'%$crops%' and a.AMW like'%$amw%' and b.PEST like'%$pest%'";
$crops = $_POST['Crops']?$_POST['Crops']:'';
$amw = $_POST['AMW']?$_POST['AMW']:'';
$pest = $_POST['PEST']?$_POST['PEST']:'';
// 把×换成你要查找的字段,post值需要过滤,加强安全性
$sql = "select * from insecticide a left join crop b on a.ID=b.ID where a.PTN like'%$tn%' and b.CROP like'%$crops%' and a.AMW like'%$amw%' and b.PEST like'%$pest%'";
追问
1) $tn = $_POST['TN']?$_POST['TN']:''; 这我看不懂啊,问号是什么意思,还有后面的:又代表什么呢?
2) 我能否在表单中控制想要输出的结果。比如我搜满足tn为** ai为***的,我想在result的表格里,只打印tn, ai, 和ptn (不是固定的,每次打印的结果,都是用户自定义的)。这该怎么写呢。 我刚自学php。。很多东西自己琢磨不明白。谢谢啊啊!
追答
1. ?: 三目运算符,自己手册去查,或google
2. 只需要判断你POST过来的值不空的话,组装成你要查询的字段:
比如:
$selectcolumn = '';
if(!empty($tn)){
$select .= ‘TN’;
}
以此类推。然后把sql语句中的星号换成$select 。如: select $selectcolumn from..............
只是给你提供一个思路,具体代码自己完成。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询