Ver Mensaje Individual
  #5 (permalink)  
Antiguo 05/08/2008, 01:17
Avatar de sumolari
sumolari
 
Fecha de Ingreso: mayo-2006
Ubicación: localhost
Mensajes: 1.367
Antigüedad: 18 años
Puntos: 18
Respuesta: filtrar busqueda php+mysql

Cita:
Iniciado por Frantopo Ver Mensaje
Aprobechando el tema del buscador del muchacho
yo tambien tengo un buscador..
mi problema es que me gustaria filtrar resultados al hacer la consulta por el buscador y que despues de devolver los resultados en una tabla.. tipo:

PRECIO <--- al precionar el link

$1
$4
$3
$2

PRECIO <--- Lo ordene de menor a mayor

$1
$2
$3
$4

Gracias de antemano y disculpa por pregutnar en tu post!
En el código SQL de la consulta a tu base de datos añade: "ORDER BY columna ASC".

Cita:
Iniciado por Zer0bg Ver Mensaje
hola gente..bueno les comento tengo el siguiente buscador

Código:
<form action="buscar.php" method="post">
Buscar: <input name="palabra">
<input type="submit" name="buscador" value="Buscar">
</form>
buscar.php

Código:
<?php
if ($_POST['buscador'])
{
// Tomamos el valor ingresado
$buscar = $_POST['palabra'];
 
// Si está vacío, lo informamos, sino realizamos la búsqueda
if(empty($buscar))
{
echo "No se ha ingresado una cadena a buscar";
}else{
// Conexión a la base de datos y seleccion de registros
$con=mysql_connect("localhost","root","");
$sql = "SELECT * FROM programas WHERE nombre like '%$buscar%' ORDER BY id DESC";
mysql_select_db("dd", $con);
 
$result = mysql_query($sql, $con);
 
// Tomamos el total de los resultados
$total = mysql_num_rows($result);
 
// Imprimimos los resultados
if ($row = mysql_fetch_array($result)){
echo "Resultados para: <b>$buscar</b>";
do {
?>
<p><b><a href="index.php?mod=ficha&id_programa=<?=$row['id'];?>">
<?php
} while ($row = mysql_fetch_array($result));
echo "<p>Resultados: $total</p>";
} else {
// En caso de no encontrar resultados
echo "No se encontraron resultados para: <b>$buscar</b>";
}
}
}
?>
</body>
</html>
ahora el inconveniente es que quiero filtrar busquedas de este tipo :S por que no las para...

<ScRiPt>alert(396720712636);</ScRiPt>

entienden a lo que voy? digamos q el buscador es vulnerable a scripts y pueden introducirme un script "remoto" si es q no estoy fallado XD

alguien me podria ayudar con eso?


desde ya muchas gracias
Yo te recomendaría usar htmlentities.

¿Cómo se usa? Te pongo un ejemplo:

Código PHP:
<?php
$buscar
$_POST['buscar']; 
$sql "SELECT * FROM programas WHERE nombre like '%$buscar%' ORDER BY id DESC";

/* Usando htmlentities */

$buscar $_POST['buscar'];
$busar htmlentities($buscar);
$sql "SELECT * FROM programas WHERE nombre like '%$buscar%' ORDER BY id DESC";
?>