为什么我的搜索功能永远不会执行“else”(如果没有找到结果,else 应该回显文本)?我在尝试显示所有结果时也遇到了一些问题(没有选择搜索条件,只需按下搜索按钮)。我将上传页面的整个代码,因为我不知道您是否也需要 HTML 部分来解决问题。我知道这是一大段代码,但如果可以的话,请帮忙。谢谢!
这是我的代码的链接:http: //pastebin.com/BXe1C0dr
为什么我的搜索功能永远不会执行“else”(如果没有找到结果,else 应该回显文本)?我在尝试显示所有结果时也遇到了一些问题(没有选择搜索条件,只需按下搜索按钮)。我将上传页面的整个代码,因为我不知道您是否也需要 HTML 部分来解决问题。我知道这是一大段代码,但如果可以的话,请帮忙。谢谢!
这是我的代码的链接:http: //pastebin.com/BXe1C0dr
这还不是答案,只是 Matei Panchios 代码的简要代码结构。因为很难理解长代码,所以我尝试简化它,以便其他人能够提供帮助。
$termeni = mysql_real_escape_string($_POST['termeni']);
$tip=$_POST['tip'];
$judet=$_POST['judet'];
if((!empty($termeni)) and (isset($tip)) and (isset($judet))) {
$query = "SELECT * FROM oferte WHERE localitate LIKE '%$termeni%' AND
tip_locatie='$tip' AND judet='$judet'";
// do the query and write some HTML
} elseif (isset($tip)) {
$query = "SELECT * FROM oferte WHERE tip_locatie='$tip'";
// do the query and write some HTML
} elseif (isset($judet)) {
$query = "SELECT * FROM oferte WHERE judet='$judet'";
// do the query and write some HTML
} elseif (!empty($termeni)) {
...
} elseif (!empty($termeni) AND (isset($judet))) {
...
} elseif (!empty($termeni) AND (isset($tip))) {
...
} elseif ((isset($judet)) AND (isset($tip))) {
...
} elseif ((!isset($judet)) AND (!isset($tip)) AND (empty($termeni))) {
...
} else {
// I believe this where it does not get executed.
}
好吧,为什么它没有被执行是有道理的,因为还有其他方法elseif
没有涵盖。如果从这个角度看
if((!empty($termeni)) and (isset($tip)) and (isset($judet))) {
elseif (!empty($termeni) AND (isset($judet))) elseif (!empty($termeni) AND (isset($tip))) elseif (!empty($termeni) AND (isset($tip))) elseif (!empty($termeni) AND (isset($tip)))
elseif (isset($tip)) elseif (isset($judet)) elseif (!empty($termeni))
elseif ((!isset($judet)) AND (!isset($tip)) AND (empty($termeni)))
else
了没有什么可覆盖的条件。如果我是你,我会按如下方式构建代码。
if (!empty($termeni) and isset($tip) and isset($judet)) {
query = '....';
} elseif (!empty($termeni) and isset($judet) {
query = '....';
} // .... the rest of the condition
$result = mysql_query($query);
if (mysql_num_rows($result) > 0) {
// write HTML table
} else {
// write message that there is no result found
}
这将使您的代码大小减少 6 倍。