Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > PostgreSQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-10-2015
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por AgustinOrtu Ver Mensaje
Primero pregunta por Apellido, como mande nada, sige
Despues pregunta por Nombre, como mande Juan, agrega la sentencia SQL y el parametro
Despues hace lo del grupo, como le pedi los Casados, agrega la sentencia, pero me falta un AND en el medio, quien lo pone?

Si lo pongo despues de poner "Juan", como me aseguro que despues alguien va a poner algo despues de mi AND?

Y si antes de agregar lo del grupo, pongo un AND, como me aseguro que antes habia una condicion?

Yo lo termine solucionando a lo bestia, poniendo siempre el AND (u OR) al final, y despues sacandoselo a la ultima linea. A lo bestia si, pero hacer algo generico como decis vos, es bastante molesto
Quizá no estoy entendiendo el punto, pero a mi entender, el problema aquí está en querer construir el texto de la sentencia SQL secuencialmente sobre la marcha.

En lugar de tratar de ver si hay condiciones antes o después, mejor junta todas y, al final, armas la cláusula, si es que quedó algo. Por ejemplo,

Código PHP:
$condiciones = array(); // en este arreglo vamos a almacenar las posibles condiciones

if (!empty($nombre)) {
  
$condiciones[] = "nombre like $nombre"// agregamos la condicón del nombre
}

if (!empty(
$grupos)) {
  
$condiciones[] = "grupo in $grupos"// agregamos la condición de grupos
}

if (!empty(
$edad)) {
  
$condiciones[] = "edad > $edad"// agregamos la condición de edad

Cada condición se agrega sin necesidad de saber si antes o después hay otra. Entonces, al final, sólo miramos si el arreglo de condiciones está vacío y, si no lo está, aglutinamos los elementos del arreglo con un AND:

Código PHP:
$whereStr "";

if (!
$empty($condiciones)) {
  
$whereStr ' WHERE ' implode(' AND '$condiciones); // cláusula where + las condiciones aglutinadas

El ejemplo está en PHP para fastidiar un poco a Mario, , pero puede adaptarse. Lo esencial es:
  • Recabar las condiciones de forma independiente
  • Armar la consulta una vez que todas las condiciones estén recabadas.

// Saludos

Última edición por roman fecha: 23-10-2015 a las 17:31:33.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿Como construir un IDE? JXJ Varios 11 12-01-2009 22:59:36
Construir Manual SQL GustavoCruz SQL 1 30-05-2008 18:36:41
Problema al Construir un TRegistry D-MO Varios 3 24-08-2006 19:55:33
Construir un KEYLOGGER SPARROW Varios 3 18-02-2004 14:27:00
Error al construir el .EXE ADN Varios 8 24-07-2003 12:49:22


La franja horaria es GMT +2. Ahora son las 23:55:09.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi