我有一个充满价值的数据库。我想根据标题查询并获取某些值。我在sql中使用LIKE查询来完成此任务。
出于某种原因,当我查询新的'时,没有结果出现。在搜索栏中。该数据库有一个标题为:New Item
的项目HTML:
<form method="get" action="">
<input type="text" name="search" id="search" value="Search...">
<br>
<br>
<center>
<input type="submit" value="Search" name="searchsub" id="searchsub">
</center>
</form>
PHP:
<?php
if(isset($_GET['search']) && isset($_GET['searchsub']))
{
$search = $_GET['search'];
$results = mysqli_query($connection, "SELECT * FROM mi4 WHERE Title LIKE '$search'");
echo "<table><tr><td>Title</td><td>Teacher</td><td>Date</td><td>Description</td><td>Submitter</td></tr>";
while($row = mysqli_fetch_array($results))
{
echo "<tr><td>". $row['Title'] ."</td><td>". $row['Teacher'] ."</td><td>". $row['Date'] ."</td><td>". $row['Description'] ."</td><td>". $row['Submitter'] ."</td></tr>";
}
echo "</table>";
}
?>
答案 0 :(得分:1)
取决于什么是$ search字符串。当你在db Title中使用完全相同的字符串时,你将传递给它必须工作的$ search。但是当你想要找到子串时,你必须在$ search字符串之前和/或之后加上百分比char%。
例如
LIKE '%$search%'
答案 1 :(得分:0)
首先,我不会在输入中使用默认值,而是应该使用占位符属性使其看起来像这样
<input type="text" name="search" id="search" placeholder="Search...">
在查询中尝试像这样使用它
$results = mysqli_query($connection, "SELECT * FROM mi4 WHERE Title LIKE '%$search%'");
%符号是通配符,因此如果您不使用它,查询将搜索变量上的确切文本,使用此符号查询将在整个字符串中搜索变量上的文本。
以下是MyQSL中使用的一些野猫的列表 SQL Wildcards