Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Como hacer una consulta cuanto tengo varias opciones para el WHERE ? (https://www.clubdelphi.com/foros/showthread.php?t=77810)

Adrian Murua 27-02-2012 22:52:14

Como hacer una consulta cuanto tengo varias opciones para el WHERE ?
 
Hola Amigos :

Tengo la siguiente situacion : 2 tablas prestamos y cuotas.

Prestamos
----------

id int pk,
monto decimal,
cant_cuotas int,
afiliados_id int fk,
....

Cuotas
-------
id int pk,
numero int,
vence date,
importe decimal,
pagada int,
prestamos_id int fk.
...

relacionada la tabla cuota con prestamos, mediante el campo prestamos_id.

Estas tablas forman parte de un sistema de prestamos donde un afiliado puede tener hasta tres prestamos paralelos, es decir, puede presentarse la situacion de tener cuotas adeudadas en los tres prestamos.
Considerando esto , despues de una consulta a la tabla prestamos tengo en un array los id de los tres prestamos del afiliado y necesito presentar por pantalla la informacion de la/las cuotas de los prestamos adeudadas por el afiliado.

Mi duda es como hacer la consulta de las cuotas de cada prestamo, uso como lenguaje anfitrion el PHP, y lo que se me ocurre hacer es un bucle y dentro de este la consulta :

Código:

 
foreach( $arrayprestamos as $item ) {
 
    $resultado = mysql_query("Select * from cuotas where prestamos_id = $item->id ");
  }

Pero no se como seguir o si esto se hacer mejor de otra manera.

Gracias por su tiempo.

Saludos.

duilioisola 28-02-2012 00:55:56

No conozco mucho PHP, pero el concepto es la concatenación.
Concatena el select con varias sentencias "(or prestamo_id = XXX)".
Código PHP:

// debo asegurarme de que por lo menos tengo un item
// el foreach debe empezar en el segundo elemento

$sql "Select * from cuotas where (prestamos_id = $item->id) ";
foreach( 
$arrayprestamos as $item ) {  
     
$sql $sql "or (prestamos_id = $item->id ")";
  }
$resultado = mysql_query($sql); 

El sql debería ser algo como
Código SQL [-]
Select * from cuotas where 
(prestamos_id = ??? )
or (prestamos_id = ??? )
or (prestamos_id = ??? )
...

Adrian Murua 28-02-2012 03:05:23

Gracias por tu respuesta duilioisola, me paso por la cabeza el concepto de la concatenacion, pero no sabia como implementarlo, ahora con tu explicación me quedo mas claro, muchas gracias por tu tiempo. saludos.


La franja horaria es GMT +2. Ahora son las 06:35:25.

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