我正在尝试使用HTML中的搜索框过滤掉我桌子中的数据。我的搜索框应该从SQL查询中返回值。
但即使我搜索,也不会显示已过滤的表格。
我检查了“喜欢”这样的情况。使用'%n'在phpMyAdmin中查询(我的意思是我的表格中的条目以' n'结尾)并且它有效,但是因为在我的搜索框中输入的特定文本,我无法检查对于我正在使用的查询。
非常感谢任何帮助和提前感谢。
<?php
//error_reporting(E_ERROR | E_PARSE);
$db_host = 'localhost';
$db_user = 'zamil'; // Username
$db_pass = '1234'; // Password
$db_name = 'resi'; // Database Name
$conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
if (!$conn) {
die ('Failed to connect to MySQL: ' . mysqli_connect_error());
}
else{
print("connected");
}
$output = '';
$query = '';
if (isset($_GET['search'])){
$searchq = $_GET['search'];
$searchq = preg_replace("#[^0-9a-z]#i","",$searchq);
$query = mysqli_query( $conn, "SELECT * FROM 'salesflow' WHERE 'Rep Name'
LIKE '%$searchq%'") or die("could not search!");
$count = mysqli_num_rows($query);
if($count == 0){
$output = 'There was no entries';
}else{
while ($row = mysqli_fetch_array($query)) {
$cname = $row['Source of Content'];
$rname = $row['Rep Name'];
$output .= '<div>'.cname.' '.rname.'</div>';
}
}
}
if ($query != 0) {
die ('SQL Error: ' . mysqli_error($conn));
}
?>
<form action="Sales1.php" method="post">
Search: <input type="text" name="search" />
<input type="submit" value="Search" /><br />
</form>
<?php print("$output"); ?>
</body>
</html>
答案 0 :(得分:0)
您的SQL查询不正确:
SELECT * FROM 'salesflow' WHERE 'Rep Name' LIKE '%$searchq%'
您在salesflow
表名称和Rep Name
列名称周围加上单引号(&#39;),但您应该使用反引号(`)代替。
有关详细信息,请参阅Using backticks around field names。
答案 1 :(得分:0)
我认为您输入了错误的查询语法。
$query = mysqli_query( $conn, "SELECT * FROM 'salesflow' WHERE
'Rep Name' LIKE '%$searchq%'") or die("could not search!");
应该这样写:
$query = mysqli_query( $conn, "SELECT * FROM 'salesflow' WHERE
'Rep Name' LIKE '%".$searchq."%'") or die("could not search!");
始终使用&#39;查询中的字符串。
另外,我的建议是不要在表格中使用SQL进行搜索,而是使用DataTable based on AngularJS。