Comunidad de diseño web y desarrollo en internet online

Select que seleccione un valor de la columna

Citar            
MensajeEscrito el 11 Sep 2010 12:34 am
Hola amigos tengo una consulta que escapa a mis escasos conocimientos. Encontre un script en la web que estoy tratando (como puedo de adaptar a mis necesidades). Tengo un buscador con 2 selects que trabajan sobre misma la tabla, solo que un select tiene que cargar la primer columna y el otro la segunda columna, de esta manera al seleccionar un valor de cada uno de estos dos selects y apretar el boton "enviar" tiene que arrojar todas las concordancias que se encuentren.

La columna "producto" tiene cargado valores como "zapatos, mocacines, zapatillas, etc" y la columna "firma" carga las marcas, por lo que un producto puede coincidir con varias marcas. Lo que quiero es seleccionar por ejemplo: en el primer select "zapatos", en el segundo "marca pirulo" y que me traiga todos los valores de la fila (son 9 columnas o campos en total) serían "color, modelo, disponibilidad, etc).

No se si se puede hacer. Los valores de la tabla son pocos, no mas de 400.

Estuve viendo lo de los selects dinamicos, pero no se sies exactamente lo que necesito ya que para mi utilidad bastaria con que la respuesta a la consulta arroje todas las coincidencias entre esas 2 columnas que aclaro son de la misma tabla.

El código que tengo es el siguiente:

Código PHP :

<? 

//////////////////////////// 
// Configuración 
/////////////////////////// 

//modifica estas variables según tu servidor de MySQL 

$bd_servidor = "localhost"; 

$bd_usuario = "root"; 

$bd_contrasenya = ""; 

$bd_bdname = ""; 

$bd_tabla = "ACCESORIOS"; // 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_contrasenya); 

mysql_select_db($bd_bdname,$link); 

//////////////////////////// 
// Formulario 
/////////////////////////// 

?> 

<center> 
<p><h2>Introduce las palabras para la búsqueda</h2></p> 
<p><form name="buscador" method="post" action="buscador_generico.php"><br> 
Buscar en: 
<select name="campo"> 
<?php 

//Con este query obtendremos los campos por los cuales el usuario puede buscar 

$result = mysql_query("SELECT DISTINCT PRODUCTO 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> 
<select name="firma"> 
<?php 

//Con este query obtendremos los campos por los cuales el usuario puede buscar 

$result = mysql_query("SELECT DISTINCT FIRMA 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> 

<br> 
<input type="submit" value="Enviar" name="enviar"> 
</form></p> 
</center> 

<? 

//////////////////////////// 
// Proceso del Formulario 
/////////////////////////// 

if(isset($_POST['enviar'])) { 

// Solo se ejecuta si se ha enviado el formulario 

$query = "SELECT * from $bd_tabla WHERE `{$_POST['campo']}` LIKE '%{$_POST['firma']}%'";  

$result = mysql_query($query,$link); 

  
echo mysql_error();  


$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"; 

} 

} 
?>


Algo estoy haciendo mal porque me devuelve error. Les agredeceré muchísimo su ayuda.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

opera
Citar            
MensajeEscrito el 11 Sep 2010 06:51 am
Hacete un archivo rar, con los php, y subilo asi lo bajo y miro, asi como lo subiste, es emborrosisimo leerlo.
Saludos!.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

msie8
Citar            
MensajeEscrito el 11 Sep 2010 11:37 am

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

opera
Citar            
MensajeEscrito el 11 Sep 2010 01:22 pm
dame un ratito que creo la bd, con la tabla y los campos, o si preferis, enviame el .sql , asi no reniego tanto.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

msie8
Citar            
MensajeEscrito el 11 Sep 2010 01:52 pm
Exportame desde phpmyadmin un sql de la bd, porque no se como lo hiciste vos, que creaste, que hay en rows, nada. o la extructura, sino no puedo hacer mucho , no me voy a poner a hacer campo por campo y editar los ids de cada una.
Te adjunto link

http://www.digitalrosario.com/cristalab/buscador_generico/
Pero ahi quede :)
Avisame.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

msie8
Citar            
MensajeEscrito el 11 Sep 2010 04:31 pm
Te paso la base. Muchas gracias.

http://rapidshare.com/files/418455007/test.rar

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

opera
Citar            
MensajeEscrito el 11 Sep 2010 07:56 pm
Che, estube revisando el script, a lo que llego es a que hay que rengar, porque eso simplemente lo que hace es tomar un valor desde un campo y mostrarlo, no tienen RELACIÓN, y te digo la verdad, si es para adaptar a lo que necesitas , chekea este link.

http://demo.koolphp.net/Examples/KoolComboBox/Features/Related_ComboBoxes/index.php
es un script que trabaja con ajax. (Efecto muy bueno). y relacióna en el ejemplo 3 combos, utilizando cargas con ajax, increible el efecto. muy bueno!

Osea que matas 2 pajaros de un tiro.
No renegas tanto, y te queda mejor.
cualquier cosa chiflame, y te ayudo con el nuevo codigo.

Saludos! Cya .

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

msie8
Citar            
MensajeEscrito el 11 Sep 2010 10:31 pm
Gracias por la onda y la ayuda. Le voy a pegar una mirada.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.