好吧,我很沮丧。我无法弄清楚我做错了什么。我是 PHP 和 MYSQL 的新手。好的,所以我已经建立了一个数据库。桌子也都摆好了。不过,我在使用 PHP 时遇到了困难。
我有 15 个要搜索的字段。但是在测试运行时,PHP 不断发布我放入框中的内容。如果我输入“Seth”,它只会发布“Seth”。这就是数据库中的任何内容。我只在 PHP 中放了一个字段来测试它。
我把我的代码放在这里。花括号在正确的位置。我在这个网站上缩进时遇到了麻烦。
第一个是我的 php.func.inc。
<?php
include 'db.inc.php';
function search_results($keywords)
{
$returned_results = array();
$where = "";
$keywords = preg_split('/[\s]+/', $keywords);
$total_keywords = count($keywords);
foreach ($keywords as $key => $keyword) {
$where .= " 'keywords' LIKE '%$keyword%' ";
if ($key != ($total_keywords - 1)) {
$where .= " AND";
}
}
$results = "SELECT 'Investigator', 'ProjectTitle', 'Institution' FROM 'Studies' WHERE
WHERE";
$results_num = $results = mysql_query($results) ? mysql_num_rows($results) : 0;
if ($results_num === 0) {
return false;
} else {
while ($results_row = mysql_fetch_assoc($results)) {
echo $results_row['OtherNotes'];
}
}
}
?>
接下来是我的Index.php。我遗漏了连接到数据库的文件。
<?php include 'func.inc.php'; ?>
<!DOCTYPE HTML>
<html>
<head>
</head>
<body>
<h2> Search </h2>
<form action="" method="POST">
<p>
<input type="text" name="keywords"/> <input type="submit"
value="search"/>
</p>
</form>
<?php
if (isset($_POST['keywords'])) {
$keywords = mysql_real_escape_string(htmlentities(trim($_POST['keywords'])));
echo $keywords;
$errors = array();
if (empty($keywords)) {
$errors[] = "Please enter a search term";
} else if (strlen($keywords) < 3) {
$errors[] = "Your search term must be a 3 or more character";
} else if (search_results($keywords === false)) {
$errors[] = 'Your search for ' . $keywords . 'returned no results';
}
if (empty($errors)) {
search_results($keywords);
} else {
foreach ($errors as $error) {
echo $error;
}
}
}?>
</body>
<html>