求改代码,谢谢!

chen_ting_ella 2009-08-19 12:35:05
做一个数据搜索的网站,往四个文本框或者只往其中任意文本框中输入,按提交,相应的结果就会以网页的形式出来。

以下是四个文本框的代码:
form.php

<form action="data.php " method="get" name="form1" >

<p><input name="township" type="text" size="8"></p></th>
<p><input name="range" type="text" size="8"></p>
<p><input name="dir" type="text" size="8"></p>
<p><input name="section" type="text" size="8"></p>
<input type="submit" name="submit" value="Submit">
</form>


data.php

<?php

$map=array('Township'=>'township','Range'=>'range', 'dirid'=>'dir', 'Section'=>'section'); $where=''; $and=''; foreach ($map as $k => $v) { if (!empty($_GET[$v])) { $where.=$and.$k.'='.$_GET[$v]; $and=' and '; } } $query =" SELECT Business_Owner,Business_Name,Mailing_Address,Phone_Number,Crop_Type,Crop_Location,Section,Township,Range,Quarter,Acreage,County FROM pesticide_sensitive_crop ORDER BY Township"; if (!empty($where)) { $query.=' WHERE '.$where; }

?>


因为其他三个文本框(name="township",name="range",name="section")输入的都是整数,只有这个'name' 为'dir'文本框中是输入"E"或"W", 我在数据库中增加了一列('dirid'),用'1'代表"E", 用'2' 代表"W", 这样做的话往文本框输入 1 或 2 可以搜索出数据,可是怎么做,能直接往'dir'文这个本框直接输入 E 或者 W , 也可以得到相同的结果呢?

谢谢大家帮忙!
...全文
67 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
LuciferStar 2009-09-19
  • 打赏
  • 举报
回复
将SQL语句输出来看看。 怕是少了个空格。
chen_ting_ella 2009-08-25
  • 打赏
  • 举报
回复
根据二楼的代码试了下,往township文本框中输入 ‘12’,dir文本框中输入 ‘E’;query结果出错: Could not query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE Township=12 and dirid=1' at line 3

怎么改啊?
LuciferStar 2009-08-19
  • 打赏
  • 举报
回复
你现在数据库里既有dir,又有dirid?
都可以搜索到?
那你可以判断GET传过来的是数字还是字母,是字母,则对dir进行搜索,是数字,则对dirid进行搜索。

请参考:
is_bool()
is_float()
is_numeric()
is_string()
is_array()
is_object()
fenyao 2009-08-19
  • 打赏
  • 举报
回复

$map=array('Township'=>'township','Range'=>'range', 'dirid'=>'dir', 'Section'=>'section');
$where='';
$and='';
$dir_array['1']=1;$dir_array['E']=1;$dir_array['2']=2;$dir_array['W']=2;
foreach ($map as $k => $v) {
if (!empty($_GET[$v])) {
$value =$_GET[$v];
if ($k=='dirid')$value=$dir_array[$value];
$where.=$and.$k.'='.$value;
$and=' and ';
}
}
$query =" SELECT Business_Owner,Business_Name,Mailing_Address,Phone_Number,
Crop_Type,Crop_Location,Section,Township,Range,Quarter,Acreage,County
FROM pesticide_sensitive_crop ORDER BY Township";
if (!empty($where)) {
$query.=' WHERE '.$where;
}

试试看

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧