
Filtrar datos de una tabla MySQL
Publicado por Carlos (20 intervenciones) el 02/06/2014 23:50:25
Buenas a todos, estoy intentando hacer un filtrado de búsqueda (antes de realizar dicha búsqueda) pero me sucede que no me devuelve resultados filtrados, no me funciona. Tengo un buscador (search engine) en el cuál quiero hacer un filtrado para que solo busque en la tabla, los valores que en la URL (fila de la tabla) empiezen con "http://taringa.net" o con "http://youtube.com", evidentemente algo estoy haciendo mal. Mi código es el siguiente:
index.php
Manda los datos a search.php el cuál muestra los resultados de la busqueda, pero los datos los obtiene de functions.php, en el cuál agregue la función para filtrar pero no me funciona.
functions.php
¿Alguno podría ayudarme? Agradecería mucho, yo se que estoy haciendo un desastre por eso no me funciona.. recién estoy empezando en PHP. Muchas gracias!
index.php
1
2
3
4
5
6
7
8
9
10
11
12
<form class="searchForm" action="search.php" method="GET">
<input type="text" autocomplete="off" name="q" id="query"/>
<div>
<button>
<svg class='shape-search' viewBox="0 0 100 100" class='shape-search'><use xlink:href='#shape-search'></use></svg>
</button>
</div>
<input type="radio" name="filtroBusqueda" /><label for="filtro">Filtrar Busqueda</label>
<label for="All">All Links</label><input type="checkbox" name="all" />
<label for="youtube">youtube</label><input type="checkbox" name="youtube" />
<label for="taringa">taringa</label><input type="checkbox" name="taringa" />
</form>
Manda los datos a search.php el cuál muestra los resultados de la busqueda, pero los datos los obtiene de functions.php, en el cuál agregue la función para filtrar pero no me funciona.
functions.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
function filtrarBusqueda(){
//Si no se selecciona ningún valor para filtrar o se selecciona "all" (que seria en el form: All Links)
// devuelve todos los valores de la tabla.
if(!isset($_POST["filtroBusqueda"]) || strcmp($_POST['filtroBusqueda'], 'all')==0){
$sql = "SELECT * FROM search";
$resultado = $mysqli->query($sql);
}
else{
// Si se selecciona algún valor
$youtube = $_POST['youtube'];
$taringa = $_POST['taringa'];
$tipoFiltro = $_POST['filtroBusqueda'];
if(isset($tipoFiltro)){
$sql = "SELECT 'url' FROM search WHERE 'url' LIKE '$tipoFiltro'";
switch($tipoFiltro){
case "youtube":
$youtube = preg_match("https://youtube.com/");
break;
case "taringa":
$taringa = preg_match("https://taringa.net/");
break;
}
return $tipoFiltro;
$resultado = $mysqli->query($sql);
}
}
}
¿Alguno podría ayudarme? Agradecería mucho, yo se que estoy haciendo un desastre por eso no me funciona.. recién estoy empezando en PHP. Muchas gracias!
Valora esta pregunta


0