我已经尝试了几个小时,让两个文本框将价格从0到999排序。我尝试过谷歌,但大多数都不起作用。。只需不断给我在文本框1和2 之间的范围内找不到数据
我已经连接了所有的数据库和所有的排序方法工作期望价格范围(从-到)
以下是我为的价格范围所做的工作
<form class="form-wrapper" action="Products.php" method="get" align="right"><div style="margin:0;padding:0">
<input type="number" id="pricefrom" placeholder="0" pattern="[0-9]" min="0" max="99" size="2" maxlength="2" required name="pricefrom"/>
<input type="number" id="priceto" placeholder="999" pattern="[0-9]" min="0" max="999" size="3" maxlength="3" required name="priceto"/>
<input type="submit" value="go" id="submit"/>
</form>
<?php
if((isset($_GET['pricefrom'])) && (isset($_GET['priceto'])))
{
$sql="SELECT * FROM products WHERE Price BETWEEN '%".$_GET['pricefrom']."%' AND '%".$_GET['priceto']."%' ORDER BY Price ASC" ;
}
else
{
$sql="SELECT * FROM products";
}
?>
试用-
"SELECT * FROM products
WHERE Price BETWEEN '".$_GET['pricefrom']."' AND '".$_GET['priceto']."'
ORDER BY Price ASC"
BETWEEN
不需要%
。
删除BETWEEN的%
。
"SELECT * FROM products
WHERE Price
BETWEEN ".$_GET['pricefrom']." AND ".$_GET['priceto']." ORDER BY Price ASC"
将查询更改为:
if(isset($_GET['pricefrom']) && isset($_GET['priceto'])) {
$sql="SELECT *
FROM products
WHERE Price BETWEEN ".$_GET['pricefrom']." AND ".$_GET['priceto']."
ORDER BY Price ASC";
}
此外,您还必须注意SQL注入
"SELECT * FROM products WHERE Price BETWEEN ".$_GET['pricefrom']." AND .$_GET['priceto']." ORDER BY Price ASC"
是SQL查询,但之后必须运行循环才能显示结果。。。
这只会得到信息。之后我们必须写:
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo ; // PHP code goes here [1]
}
} else {
echo "0 results";
}
[1] 在这里,您必须编写代码,其中提到如何显示数据。