Foros del Web » Creando para Internet » Diseño web »

Ayuda "crear Buscador Con Mysql Y Php

Estas en el tema de Ayuda "crear Buscador Con Mysql Y Php en el foro de Diseño web en Foros del Web. Hola, estoy haciendo un buscador con MYSQL Y PHP , soy nueva en esto , y lo que se es muy poco. TENGO QUE BUSCAR ...
  #1 (permalink)  
Antiguo 21/05/2008, 09:32
 
Fecha de Ingreso: mayo-2008
Mensajes: 5
Antigüedad: 9 años, 6 meses
Puntos: 0
Ayuda "crear Buscador Con Mysql Y Php

Hola, estoy haciendo un buscador con MYSQL Y PHP , soy nueva en esto , y lo que se es muy poco.
TENGO QUE BUSCAR ORDENANZAS Y DECRETOS.
Logré hacer esto con ayuda.




Hola, estoy haciendo un buscador con MYSQL Y PHP , soy nueva en esto , y lo que se es muy poco.
TENGO QUE BUSCAR ORDENANZAS Y DECRETOS.
Logré hacer esto con ayuda.

Introduzca la palabra a buscar


Elija Campo en: Palabra Ingresada:



En donde dice elige el campo, me desplega un menú en ELIJA CAMPO (OD_ID, OD_NOMBRE, OD_DESCRIPCION), si elijo od_descripcion y le ingreso la palabra bonificacion (en el casillero de palabra ingresada) , el RESULTADO ES ESTE:

OD_ID: 3
OD_NOMBRE: 2008-2-A
OD_DESCRIPCION: BONIFICACION 50%


OD_ID: 6
OD_NOMBRE: 2007-325
OD_DESCRIPCION: BONIFICACION 30%


AHORA BIEN , A MI ME GUSTARIA QUE EN EL MENU DESPLEGABLE , NO ME MUESTRE EL OD_ID. SI LOS OTROS 2.


OTRA COSA ES, CUANDO ME MUESTRE EL RESULTADO,QUE NO ME TRAIGA ESTO:
OD_ID: 6
OD_NOMBRE: 2007-325
OD_DESCRIPCION: BONIFICACION 30%

SOLAMENTE QUE ME MUESTRE ESTO:

2007-325
BONIFICACION 30%
Y CUANDO ME MUESTRE ESTOS DATOS :EL 2007-325 TENGA UN LINK PORQUE CUANDO YO HAGA UN CLICK AHI , DEBERIA HABRIRME UN ARCHIVO "PDF"


"TE MANDO LO QUE HICE, DESDE YA MIL GRACIAS, ESPERO ME PUEDAN AYUDAR"

<?
//Archivo: orden-decretos.php
$bd_servidor = "localhost";

$bd_usuario = "usuario";

$bd_contrasenya = "contraseña";

$bd_bdname = "bd";

$bd_tabla = "ORD_DECRE"; // Tabla donde se harán las búsquedas

// Conexión y selección de la base de datos
$link = mysql_connect($bd_servidor,$bd_usuario,$bd_contras enya);
mysql_select_db($bd_bdname,$link);
////////////////////////////
// Formulario
///////////////////////////
?>
<center>
<p>
<p><img src="seccionenconstruccion.gif" width="300" height="18" />
<h2>&nbsp;</h2>
<h2>Introduzca la palabra a buscar</h2>
<p>&nbsp;</p>
<p><form name="buscador" method="post" action="orden-decretos.php">
<p><br>
Elija Campo en:
<select name="campo">
<?php
//Con este query obtendremos los campos por los cuales el usuario puede buscar
$result = mysql_query("SHOW FIELDS FROM `$bd_tabla`",$link);
while($row = mysql_fetch_row($result)) {

// en $row[0] tenemos el nombre del campo
// de esta manera no necesitamos conocer el nombre de los campos
// por lo que cualquier tabla nos valdrá
?>
<option value="<?php echo $row[0]; ?>"><?php echo $row[0]; ?></option>
<?php
}
?>
</select>
Palabra Ingresada:
<input type="text" name="palabra">
</p>
<p><br>
<input type="submit" value="Buscar" name="buscar">
</p>
</form></p>
</center>
<?

if(isset($_POST['buscar'])) {
// Solo se ejecuta si se ha enviado el formulario
$query = "SELECT * from $bd_tabla WHERE `{$_POST['campo']}` LIKE '%{$_POST['palabra']}%'";
$result = mysql_query($query,$link);

$found = false; // Si el query ha devuelto algo pondrá a true esta variable
while ($row = mysql_fetch_array($result)) {
$found = true;
echo "<p>";
foreach($row as $nombre_campo => $valor_campo) {
// Tenemos que mostrar todos los campos de las filas donde se haya
// encontrado la búsqueda.

if(is_int($nombre_campo)) {
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>".$nombre_campo."</b>: ".$valor_campo."<br>";
}
echo "</p>";
}
if(!$found) {
echo "No se encontró la palabra introducida";
}
}
?>

En donde dice elige el campo, me desplega un menú (OD_ID, OD_NOMBRE, OD_DESCRIPCION), si elijo od_descripcion y le ingreso la palabra bonificacion por ejemplo, el RESULTADO ES ESTE:

OD_ID: 3
OD_NOMBRE: 2008-2-A
OD_DESCRIPCION: BONIFICACION 50%


OD_ID: 6
OD_NOMBRE: 2007-325
OD_DESCRIPCION: BONIFICACION 30%


AHORA BIEN , A MI ME GUSTARIA QUE EN EL MENU DESPLEGABLE , NO ME MUESTRE EL OD_ID. SI LOS OTROS 2.


OTRA COSA ES, CUANDO ME MUESTRE EL RESULTADO,QUE NO ME TRAIGA ESTO:
OD_ID: 6
OD_NOMBRE: 2007-325
OD_DESCRIPCION: BONIFICACION 30%

SOLAMENTE QUE ME MUESTRE ESTO:

2007-325
BONIFICACION 30%
Y CUANDO ME MUESTRE ESTOS DATOS :EL 2007-325 TENGA UN LINK PORQUE CUANDO YO HAGA UN CLICK AHI , DEBERIA HABRIRME UN ARCHIVO "PDF"


"TE MANDO LO QUE HICE, DESDE YA MIL GRACIAS, ESPERO ME PUEDAN AYUDAR"

<?
//Archivo: orden-decretos.php
$bd_servidor = "localhost";

$bd_usuario = "usuario";

$bd_contrasenya = "contraseña";

$bd_bdname = "bd";

$bd_tabla = "ORD_DECRE"; // Tabla donde se harán las búsquedas

// Conexión y selección de la base de datos
$link = mysql_connect($bd_servidor,$bd_usuario,$bd_contras enya);
mysql_select_db($bd_bdname,$link);
////////////////////////////
// Formulario
///////////////////////////
?>
<center>
<p>
<p><img src="seccionenconstruccion.gif" width="300" height="18" />
<h2>&nbsp;</h2>
<h2>Introduzca la palabra a buscar</h2>
<p>&nbsp;</p>
<p><form name="buscador" method="post" action="orden-decretos.php">
<p><br>
Elija Campo en:
<select name="campo">
<?php
//Con este query obtendremos los campos por los cuales el usuario puede buscar
$result = mysql_query("SHOW FIELDS FROM `$bd_tabla`",$link);
while($row = mysql_fetch_row($result)) {

// en $row[0] tenemos el nombre del campo
// de esta manera no necesitamos conocer el nombre de los campos
// por lo que cualquier tabla nos valdrá
?>
<option value="<?php echo $row[0]; ?>"><?php echo $row[0]; ?></option>
<?php
}
?>
</select>
Palabra Ingresada:
<input type="text" name="palabra">
</p>
<p><br>
<input type="submit" value="Buscar" name="buscar">
</p>
</form></p>
</center>
<?

if(isset($_POST['buscar'])) {
// Solo se ejecuta si se ha enviado el formulario
$query = "SELECT * from $bd_tabla WHERE `{$_POST['campo']}` LIKE '%{$_POST['palabra']}%'";
$result = mysql_query($query,$link);

$found = false; // Si el query ha devuelto algo pondrá a true esta variable
while ($row = mysql_fetch_array($result)) {
$found = true;
echo "<p>";
foreach($row as $nombre_campo => $valor_campo) {
// Tenemos que mostrar todos los campos de las filas donde se haya
// encontrado la búsqueda.

if(is_int($nombre_campo)) {
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>".$nombre_campo."</b>: ".$valor_campo."<br>";
}
echo "</p>";
}
if(!$found) {
echo "No se encontró la palabra introducida";
}
}
?>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:19.