Problemas con un buscador
Hola, soy novato en esto del php, y me gustaría que me ayudaras, estoy intentando crear un buscador, y tengo unos cuantos problemillas.Te paso a explicar:
El buscador tiene tres select: el primero selecciona la tabla donde hay que buscar, y esto en principio va bien, el segundo y el tercer select, (que son sección y provincia), son lo que hay que buscar en los campos, de tal forma que busque los datos seleccionados en sección y provincia, respectivamente, y los enseñe en pantalla.
En principio la búsqueda la hace bien, es decir, salen los datos en pantalla, pero los resultados los enseña en pantalla, todos seguidos, entonces, quería que salieran los datos presentados en una página y con mejor presencia, en una tabla o algo así.
También quisiera saber como mostrar los resultados en otra página o frame.
Y otro problema que tengo es que muestra todos los campos, y me interesa que muestre solo algunos de estos campos.
Este es el php:
<?
$tabla= $_POST['quebusca'] ;
$seccion = $_POST['seccion'];
$provincia = $_POST['provincia'];
$host_db = "localhost"; // Aquí pones el servidor mysql
$usuario_db = "root"; // Aquí el nombre de usuario de la base de datos
$pass_db = "mi contraseña"; // La contraseña de la base de datos
$base_db = "mi base de datos"; // El Nombre de la base de datos, que previamente habiamos definido
$conexion = mysql_connect($host_db, $usuario_db, $pass_db);
mysql_select_db($base_db,$conexion);
$select= "SELECT * from $tabla WHERE seccion LIKE '%$seccion%' and provincia LIKE '%$provincia%' ORDER BY id DESC";
$result = mysql_query($select,$conexion) or die(mysql_error());
$found = false; // Si el query ha devuelto algo pondrá a true esta variable
while ($row = mysql_fetch_array($result)) {
$found = true;
foreach ($row as $resultado=>$busqueda){
// Tenemos que mostrar todos los campos de las filas donde se haya
// encontrado la búsqueda.
if(is_int($resultado)) {
continue;
//Cuando hacemos mysql_fetch_array, php genera un array
// con todos los valores guardados dos veces, uno con
// índice numérico y otro con índice el nombre del campo.
// Solo nos interesa el del nombre del campo.
}
echo "<b>".$busqueda."</b>" ;
}
echo "
<p>";"</p>
" ;}
if(!$found)
{echo "No se encontraron resultados para la búsqueda introducida";}
mysql_close($conexion);
?>
Creo que te lo he puesto un poco difícil, ¿pero me podías ayudar?, muchas gracias.
El buscador tiene tres select: el primero selecciona la tabla donde hay que buscar, y esto en principio va bien, el segundo y el tercer select, (que son sección y provincia), son lo que hay que buscar en los campos, de tal forma que busque los datos seleccionados en sección y provincia, respectivamente, y los enseñe en pantalla.
En principio la búsqueda la hace bien, es decir, salen los datos en pantalla, pero los resultados los enseña en pantalla, todos seguidos, entonces, quería que salieran los datos presentados en una página y con mejor presencia, en una tabla o algo así.
También quisiera saber como mostrar los resultados en otra página o frame.
Y otro problema que tengo es que muestra todos los campos, y me interesa que muestre solo algunos de estos campos.
Este es el php:
<?
$tabla= $_POST['quebusca'] ;
$seccion = $_POST['seccion'];
$provincia = $_POST['provincia'];
$host_db = "localhost"; // Aquí pones el servidor mysql
$usuario_db = "root"; // Aquí el nombre de usuario de la base de datos
$pass_db = "mi contraseña"; // La contraseña de la base de datos
$base_db = "mi base de datos"; // El Nombre de la base de datos, que previamente habiamos definido
$conexion = mysql_connect($host_db, $usuario_db, $pass_db);
mysql_select_db($base_db,$conexion);
$select= "SELECT * from $tabla WHERE seccion LIKE '%$seccion%' and provincia LIKE '%$provincia%' ORDER BY id DESC";
$result = mysql_query($select,$conexion) or die(mysql_error());
$found = false; // Si el query ha devuelto algo pondrá a true esta variable
while ($row = mysql_fetch_array($result)) {
$found = true;
foreach ($row as $resultado=>$busqueda){
// Tenemos que mostrar todos los campos de las filas donde se haya
// encontrado la búsqueda.
if(is_int($resultado)) {
continue;
//Cuando hacemos mysql_fetch_array, php genera un array
// con todos los valores guardados dos veces, uno con
// índice numérico y otro con índice el nombre del campo.
// Solo nos interesa el del nombre del campo.
}
echo "<b>".$busqueda."</b>" ;
}
echo "
<p>";"</p>
" ;}
if(!$found)
{echo "No se encontraron resultados para la búsqueda introducida";}
mysql_close($conexion);
?>
Creo que te lo he puesto un poco difícil, ¿pero me podías ayudar?, muchas gracias.
4 Respuestas
Respuesta de Jorge Vila
1
Respuesta de vellonce
1
Respuesta de tnathos
1
Respuesta de Chari Saiz
1