Php 比较返回到设置整数的num记录,如果为true,则显示消息
如何将返回的行数与数字进行比较并显示消息 我有一个带有下拉列表的表单,人们可以在其中选择产品的序列号或名称,还可以在文本框中键入搜索结果。我将最小长度设置为1,因为序列号最小为1位,范围最多为5位。此外,如果他们只知道名字的第一个字母,它会列出以该字母开头的所有记录。如果他们键入产品的名称,并且只知道产品的第一个字母,如果他们在名称中只键入一个字母,则我希望显示一条消息,表示请尝试键入多个字母。我可以成功显示此消息,但如果返回的记录数少于5,则仍会显示此消息 我在表单的处理页面上编写了代码,以便它计算返回的行数并检查是否大于或等于5。如果搜索返回的记录超过5条,我想显示此消息Php 比较返回到设置整数的num记录,如果为true,则显示消息,php,mysql,Php,Mysql,如何将返回的行数与数字进行比较并显示消息 我有一个带有下拉列表的表单,人们可以在其中选择产品的序列号或名称,还可以在文本框中键入搜索结果。我将最小长度设置为1,因为序列号最小为1位,范围最多为5位。此外,如果他们只知道名字的第一个字母,它会列出以该字母开头的所有记录。如果他们键入产品的名称,并且只知道产品的第一个字母,如果他们在名称中只键入一个字母,则我希望显示一条消息,表示请尝试键入多个字母。我可以成功显示此消息,但如果返回的记录数少于5,则仍会显示此消息 我在表单的处理页面上编写了代码,以便
我的问题:如何将返回的记录数与设置的5进行比较,以便我返回并尝试更长时间搜索产品名称的消息仅在返回5条或更多记录时显示?它似乎可以很好地显示消息,但是当您的代码对SQL注入攻击非常开放,并且很可能已经被破坏时。切勿将任意数据连接到SQL查询的上下文中。始终使用准备好的/参数化的查询来避免此问题。此外,不要在不转义的情况下将任意数据连接到HTML上下文中!您可能会创建无效的HTML,以及脚本注入和安全问题。最后,您也没有转义任何内容,以便在您要回显的查询字符串中使用。这些都是您应该立即解决的严重问题。我的代码运行在测试服务器上,是朋友机器上的虚拟测试服务器,所以我确信它没有被破坏。但是谢谢你的建议。
include "includeData.php";
$conn = mysqli_connect("localhost", $mysqlUname,$mysqlPW, $mysqlDB);
if (!$conn){
die('Could not connect: ' . mysqli_connect_error());
}
if (!empty($_GET['searchText'])){
$query = $_GET['searchText'];
$min_length = 1;
if(strlen($query) >= $min_length){
$query = htmlspecialchars($query);
$query = mysqli_real_escape_string($conn,$query);
$sql = "SELECT * FROM machine WHERE `m_ipdb` LIKE '%".$query."%' OR `m_name` LIKE '%". $query."%'";
$qResults = mysqli_query($conn,$sql);
if (!$qResults){
echo "There was a problem!<br />";
die(mysqli_error($conn));
//added for best practice and consistency
}
echo "<table border='1'>";
while($row = mysqli_fetch_array($qResults))
{
echo "<tr>";
echo "<td>" . $row['m_ipdb'] . "</td>";
echo "<td><a href=\"details.php?m_ipdb=" . $row['m_ipdb'] . "&m_name=" . $row['m_name'] . "\">";
echo $row['m_name'];
echo "</a></td>";
echo "</tr>";
}
echo "</table>";
/*echo "<p>Number of rows returned: " . mysqli_num_rows($qResults) . "<br />";*/
$result = mysqli_query($conn,"SELECT COUNT(*) AS number FROM machine");
$num = mysqli_fetch_array($result);
$count = $num["number"];
if($count >= 5){
echo "<a href='search.php'>Return to Search Page</a><br />" . "And try searching for more than one letter in the name!";
}
else{
echo " ";
}
mysqli_close($conn);
}
}