Foros del Web » Programando para Internet » PHP »

Como hacer una consulta con los valores de una lista

Estas en el tema de Como hacer una consulta con los valores de una lista en el foro de PHP en Foros del Web. Hola, soy nuevo en este foro y recuperé la cuenta porque me surgió un problema; quiero realizar una consulta simple a una tabla de una ...
  #1 (permalink)  
Antiguo 27/07/2014, 04:06
 
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 3
Antigüedad: 11 años, 5 meses
Puntos: 0
Información Como hacer una consulta con los valores de una lista

Hola, soy nuevo en este foro y recuperé la cuenta porque me surgió un problema; quiero realizar una consulta simple a una tabla de una base de datos con sólo dos campos, el id y el nombre. Pero quiero que me traiga el nombre de acuerdo a lo seleccionado en mi lista previamente cargada con los datos del campo nombre de mi tabla.

Lleno mi lista:

Código PHP:
<?php
include "conexion.php";
echo
"<form action='inventario.php' method='get'>Selecciona categoría ";
$consulta="select ID_Categoria, Categoria from categoria"
$resultado=mysql_query($consulta);
$lst="<select name='lstCategoria'>\n<option selected>Selecciona una categoría:</option>";
while(
$row=mysql_fetch_array($resultado))
{
    
$lst.="\n<option value='".$row['ID_Categoria']."'>".$row['Categoria']."</option>"

$lst.="\n</select>"
echo 
$lst;
echo
"<input name='btnEnviar' type='submit' value='Imprimir' /></form>"
?>
Y en mi otra página tengo mi consulta:

Código PHP:
$menu=$_GET['lstCategoria'];
            include 
'conexion.php';
            
$consulta="SELECT inventario.*, categoria.* FROM inventario, categoria where inventario.ID_Categoria = categoria.ID_Categoria ORDER BY Categoria, Producto ASC"
Pero ahí me muestra todas las categorías, lo que a mi me gustaría hacer sería algo como:

Código PHP:
$consulta="SELECT inventario.*, categoria.* FROM inventario, categoria where inventario.ID_Categoria = categoria.ID_Categoria and inventario.ID_Categoria = indice seleccionado ORDER BY Categoria, Producto ASC"
O:

Código PHP:
$consulta="SELECT inventario.*, categoria.* FROM inventario, categoria where inventario.ID_Categoria = categoria.ID_Categoria and categoria.Categoria = valor seleccionado ORDER BY Categoria, Producto ASC"
De antemano, gracias por leer!

Última edición por omar13_02; 27/07/2014 a las 05:10
  #2 (permalink)  
Antiguo 27/07/2014, 06:53
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Como hacer una consulta con los valores de una lista

Basta con que en lugar de 'indice seleccionado', coloques a la variable cuyo valor llega mediante el método GET (que es el que estás usando para enviar el dato desde el formulario). Sin embargo, como vas a interactuar con la BD, primero debes de filtrar el dato para evitar que algún usuario pueda ejecutar código malicioso.

Código PHP:
Ver original
  1. $variable = mysql_real_escape_string(strip_tags($_GET['lstCategoria']));

Una vez realizado el filtro, procede a colocar a dicha variable en la consulta:

Código PHP:
Ver original
  1. $consulta = "SELECT inventario.*, categoria.* FROM inventario, categoria
  2.             WHERE inventario.ID_Categoria = categoria.ID_Categoria
  3.             AND inventario.ID_Categoria = {$variable}
  4.             ORDER BY Categoria, Producto ASC";

Para realizar el filtrado, utilicé una de las funciones de la extensión MySQL, la cual se encuentra obsoleta a partir de la versión 5.5.0 de PHP, por lo que te recomiendo utilizar su equivalente en la extensión mejorada MySQLi.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 27/07/2014, 23:38
 
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 3
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Como hacer una consulta con los valores de una lista

Bien, muchas gracias. Creo que de verdad era algo muy sencillo pero me bloqueé y no se me ocurrió, sólo una duda más, si no te molesta. De el modo planteado la variable me devuelve el índice, que era lo que necesitaba, pero cómo podría hacer para que en vez de eso, me devuelva el texto de la opción seleccionada en la lista?

Etiquetas: lista, select, sql, tabla
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 12:06.