我正在尝试像导航栏上的常规搜索一样进行高级搜索,但这次我想把它变成一个过滤器,使用看起来像链接的按钮,但问题是,当我点击按钮时它确实一个很好的搜索,它告诉我,没有1000的值,但在我的数据库中有字符串与该值(int)
我不想使用其他语言,我只想尝试使用PHP
我的网址中显示的值是
http://localhost/talvez%20usuario/1000more.php?valor=1000&send=1%2C000
这是我的代码:
<?php
session_start();
require 'extras/config.php';
require 'functions.php';
comprobarSession();
$conexion = conexion($bd_config);
if (!$conexion) {
header('Location: error.php');
}
if ($_SERVER['REQUEST_METHOD'] == 'GET' && !empty($_GET['valor'])) {
$busqueda = limpiarDatos($_GET['valor']);
$statement = $conexion->prepare('SELECT * FROM publications WHERE salario LIKE >= 1000-500 and salario <= 1000+500');
$statement->execute(array(':valor' => "%$busqueda%"));
$resultados = $statement->fetchAll();
if(empty($resultados)) {
$titulo = 'No se encontraron articulos con el resultado '. $busqueda;
} else {
$titulo = 'Resultados de la busqueda: ' . $busqueda;
}
}
require 'views/1000more.php';
?>
这是我的按钮:
<form action="1000more.php" method="GET">
<input type="hidden" value="1000" name="valor" />
$<input type="submit" class="btn btn-link" name="send" value="1,000">+</input>(16947)
</form>
答案 0 :(得分:1)
你应该在where语句中添加“valor”:
$statement = $conexion->prepare('SELECT * FROM publications WHERE valor = :valor and salario >= 1000-500 and salario <= 1000+500');
并编辑该行:
$statement->execute(array(':valor' => $busqueda));