我正在尝试使用 $PHP_SELF 从表单中收集值并在同一页面上返回结果。该页面本身就是一个 PHP 页面,如果这很重要的话。
我似乎看不到我明显有的错误。我正在使用的错误处理程序告诉我错误在第 22 行(带有 $searchTerm = trim($name); 的行),但我怀疑它可能在 php 命令的下方,尽管我已经尝试过注释掉东西和剥离东西和减少东西等的各种组合,我从来没有得到页面,在初始加载时,没有给我第 22 行的错误,这是查询部分的开始这页纸。如果我将表单放在查询中的所有 php 之前,我可以看到表单,但我仍然有错误。如果我把表格放在查询下面,我看不到表格。
奇怪的部分是表格完美地工作。而且,点击提交按钮后,我没有显示错误,只有正确的结果。我想错误可能在于我如何封闭(或不封闭)它的查询处理部分,但在这一点上,我看不到它。我把这个网站上的几个问题和我通过谷歌搜索找到的教程放在一起。所以我对命令是正确的感到很舒服,我只是不明白为什么我会显示错误。
这是代码的最新版本,它与我所做的其他尝试完全相同的错误。PHP 的整个部分,从 $searchterm 到 mysqli 是否应该用括号括起来?我正在使用对初始 if 语句上方的 conn 文件的调用。这是两个功能完全正确的页面的组合 - 我在表单操作中使用了另一个页面的名称 search.php。不知何故,将它们结合起来会让事情变得非常、非常错误。
if(isset($_POST['submit']))
{
$name = $_POST['name'];
echo "User has entered this name : <b> $name </b>";
}
//capture search term and remove spaces at both ends, if there are any
$searchTerm = trim($name);
//connect to database
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) or die('Error connecting to MySQL server.');
//MYSQL search statement
$query = "SELECT CompanyName FROM Companies WHERE CompanyName LIKE '%$searchTerm%'";
$results = mysqli_query($dbc, $query);
//Check whether there were matching records in the table by counting the number of results returned
if(mysqli_num_rows($results) >= 1)
while($row = mysqli_fetch_array($results))
{
echo '<div class="query">' . $row['CompanyName'] . '</div>';
} else
echo "No match found for " . $searchTerm;
mysqli_close($dbc);
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="text" name="name"><br>
<input type="submit" name="submit" value="Submit Form"><br>
</form>