两个搜索字段(一个是下拉列表)-PHP&;MYSQL代码
我真的很想在这方面得到一些帮助,因为我正在拔头发!!! 我有两个字段,一个是输入框,另一个是下拉列表,用于搜索数据库并显示结果,但我似乎无法找到它…这是我到目前为止得到的 这是实际的搜索表单:两个搜索字段(一个是下拉列表)-PHP&;MYSQL代码,php,mysql,database,search,webforms,Php,Mysql,Database,Search,Webforms,我真的很想在这方面得到一些帮助,因为我正在拔头发!!! 我有两个字段,一个是输入框,另一个是下拉列表,用于搜索数据库并显示结果,但我似乎无法找到它…这是我到目前为止得到的 这是实际的搜索表单: <form id="myform" name="myform" action="<?php echo $_SERVER['PHP_SELF']?>" method="get"><br /> <div class="T1"><br
<form id="myform" name="myform" action="<?php echo $_SERVER['PHP_SELF']?>" method="get"><br />
<div class="T1"><br /><p></div> <input name="term" type="text" value="<? php echo $_GET['searched']; ?>" size="10" maxlength="4" placeholder="e.g. BS1"/>
<select>
<option value="">I feel like...</option>
<option value="">Anything</option>
<option value="Indian">Indian</option>
<option value="Chinese">Chinese</option>
<option value="Thai">Thai</option>
</select>
<input type="submit" name="submit" value="Go"/>
</form>
- 在脚本中的任何位置(甚至在表单操作中)回显$_SERVER['PHP_SELF']或$_GET['searched']都会使您的站点受到XSS攻击。除非先对它们进行消毒,否则不要这样做
- 对于所有新项目,建议使用准备好的语句进行mysql查询。您可以使用mysqli或PDO来实现这一点。您的代码只是根据您尝试执行的操作的外观来请求SQL注入
- 您的代码中缺少一个括号,并且在末尾有一些额外的括号。同样在echo之后,您缺少一个引号。我不知道那里发生了什么事。试着把那些修好
- @before mysql_fetch_array()有什么用?在PHP中使用@的情况确实很少。它通常是一个指示器,表明代码中的某个地方存在某种错误,应该加以修复而不是抑制
- 如果希望能够在PHP中使用名称属性,则需要该属性
- 在SQL查询中,当您应该使用equals时,不应该像使用
那样使用。此外,不应引用整数
为什么要回显一个空字符串,如echo'.$somevar代码>?只需回显变量即可
我不确定“显示”是为了什么,但我假设这是一条可以显示的记录。首先要做的是更新查询:
$sql = mysql_query("select pagetitle, cuisine from Restaurant where (extra like '%$term%') and (showing like '1') and (cuisine like 'option value')");
您还需要检查用户是否未输入选项或选择了“任何内容”,在这种情况下,需要稍微更改查询:
$sql = mysql_query("select pagetitle, cuisine from Restaurant where (extra like '%$term%') and (showing like '1') and (cuisine like 'option value' or 'option value' = '')");
$sql = mysql_query("select pagetitle, cuisine from Restaurant where (extra like '%$term%') and (showing like '1') and (cuisine like 'option value' or 'option value' = '')");