Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Como hacer la seleccion ?

Estas en el tema de Como hacer la seleccion ? en el foro de Bases de Datos General en Foros del Web. Mediante un formulario solicito de la base de datos el valor de un campo: [COLOR="Blue"] <select class="txt1" name="Color"><option selected value="">seleccione... <option value="Blanco">Blanco</option> <option value="Negro">Negro</option> <option ...
  #1 (permalink)  
Antiguo 17/06/2010, 10:16
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 7 meses
Puntos: 1
Como hacer la seleccion ?

Mediante un formulario solicito de la base de datos el valor de un campo:

[COLOR="Blue"]<select class="txt1" name="Color"><option selected value="">seleccione...
<option value="Blanco">Blanco</option>
<option value="Negro">Negro</option>
<option value="Azul">Azul</option>

..
.

El codigo de busqueda es mas o menos este:

$Color=$_GET['Color'];
$_pagi_sql = "SELECT * FROM tabla WHERE Color='$Color' ";
.
.


Quiere decir que si pido me saque el color blanco de la BD me saca el registro cuyo campo =blanco, etc
pero como lo haria para que si el valor de la variable $Color del formulario es "" me salgan todos los campos: blanco, negro, azul
No se si me he esplicado bien
Gracias
  #2 (permalink)  
Antiguo 21/06/2010, 01:29
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 7 meses
Puntos: 1
Respuesta: Como hacer la seleccion ?

¿ Es que nadie me puede ayudar ?
Por favor aunque parezca facil, yo no encuentro solución
  #3 (permalink)  
Antiguo 21/06/2010, 06:18
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Como hacer la seleccion ?

Desafortunadamente ese condicional no permitiría generar una sentencia única, sino que deberías crear sentencias de SQL diferentes para la condición.
De no querer hacer dos sentencias diferentes (algo que puedes resolver dinámicamente en PHP), sólo quedaría hacerlo por stored procedure.
Esto es así porque lo que tu pides es un condicional OR generaría un error de lógica, porque bastaría que una de las dos condiciones se cumpliera, pero también sería TRUE si las dos se cumplieran, con lo que no puedes determinar de esa forma el resultado.
Por otro lado, no puedes hacer esa consulta si el partón de comparación es la variable consigo mismo. El WHERE tiene sentido si y sólo si se usa para establecer relaciones lógicas con los campos de la misma tabla, y no con objetos (valores en este caso) que son completamente externos a ella.

¿Se entiende?

Esa situación sólo se resuelve por SP o desde la aplicación.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 21/06/2010, 11:50
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 7 meses
Puntos: 1
Respuesta: Como hacer la seleccion ?

Perdona, pero no me he enterado de nada

No se, pero me da la sensacion de que no me he explicado bien, porque lo que me dices me suena a chino y creo que es mas sencillo de lo que me dices.
Se trata de un SELECT * FROM tabla WHERE Color='$Color' "; y poner unas condiciones para que si el valos del formulario es nulo, la selección de campos no tenga en cuenta ese valor, ya que es nulo, y salgan todos los datos de ese campo.
Gracias por tu ayuda, pero soy muy nuevo en esto y las explicaciones deben ser claras.
  #5 (permalink)  
Antiguo 21/06/2010, 15:11
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Como hacer la seleccion ?

gnzsoloyo te ha dicho que la solución puede hacerse mediante programación en tu aplicación (parece que usas PHP) o con SP, procedimientos almacenados de la base de datos. Aquí no te podemos decir más, salvo que supieras crear SP. Si no es el caso, yo te recomiendo que lo resuelvas con programación. Es tan sencillo como sugieres, pero en este foro no podemos darte la solución sin escribir código no permitido. Pide ayuda en el foro de programación y verás que la solución es fácil: en realidad, la sintaxis SQL se adaptará a la selección adoptada en el selector, añadiendo a la consulta la parte del where... o no, según selecciones el elemento todos los colores o cualquiera de los otros. Pide ayuda en el foro PHP.

Etiquetas: seleccion
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 14:45.