PHP搜索表单

时间:2011-02-17 17:08:40

标签: php mysql

我是PHP的新手,请原谅这个问题或问题是否令人困惑 我正在尝试创建一个具有2个下拉选项的搜索表单:St。Peter或JHS。用户输入教授的名字然后选择 教授教的学校。表格在下面

<form name=form action="form.php" method="GET">
<input type="text" name="find" /> 
<select name="school[]" >
<option value="">School</option>
<option value="1">St.Peter</option>
<option value="2">JHS</option>
</select>
<input type="submit" name="Submit" value="Search" />
</form>

我正在使用的form.php脚本是

<?php
$q=$_GET["find"];
$s=$_GET["school"];
$con = mysql_connect('localhost', 'peter', 'abc123');

if($q && ($s==St.Peter))
echo "that professor belongs to St.peter H.S";
else{echo "that professor does not belong to this school"; }
elseif($q && ($s==JHS))
echo "that professor belongs to JHS H.S";
else{echo "that professor does not belong to this school"; }
?>

当我运行它时,我得到的输出是。 该教授属于St.peter H.S,该教授属于JHS H.S

如果我改变脚本只是为了看第一个if语句是否正确,例如

<?php
$q=$_GET["find"];
$s=$_GET["school"];
$con = mysql_connect('localhost', 'peter', 'abc123');

if($q && ($s==St.Peter))
echo "that professor belongs to St.peter H.S";
else{echo "that professor does not belong to this school"; }

?>

这回事说教授属于St.peter H.S,但如果改变

if($q && ($s==St.Peter))

if($q && ($s==St.P)) 
它回应了同样的事情。这个教授属于St.peter H.S,

4 个答案:

答案 0 :(得分:1)

if($q && ($s==St.Peter))

这在语法上是不正确的。 PHP会将'St.Peter'视为未定义的常量,而不是字符串,您应该

if($q && ($s == 'St.Peter'))

同样,你的大if / else块不正确。

if (...) {
} else {
  ...
} else if {
  ...
}

这是一个语法错误。 {(1}}是if()系列中的最后一个“if all else failed”。你不能跟其他人一起跟进。该块应

else

答案 1 :(得分:1)

您必须与SELECT OPTION的值进行比较。尝试:

if($q && ($s=='1'))

答案 2 :(得分:0)

那是因为实际发送的是选项的“值”,而不是文本。你应该寻找“1”或“2”

if ($q && $s == 1)

答案 3 :(得分:0)

Marc B. +传染性

<select name="school[]" >

这指示PHP将GET ['school']参数创建为数组。适用于多个复选框等。你应该去

<select name="school" >