CodeCharge Studio
search Register Login  

Visual PHP Web Development

Visually Create Internationalized Web Applications, Web Reports, Calendars, and more.
CodeCharge.com

YesSoftware Forums -> CodeCharge Studio -> Español

 Utilizar Variable en consulta

Print topic Send  topic

Author Message
alfonso

Posts: 121
Posted: 03/23/2009, 3:12 AM

Hola amigos,

Tengo esta duda que me parece simple pero no sé como resolverla, el caso es que quiero utilizar una variable en una consulta sql, hecha con un grid.

Al parecer, si que te deja sacar la variable de la url (por parametro) pero de una variable local no.

El caso es que necesito hacer una consulta, y del resultado de ésta, esa variable resultante utilizarla para una comparación con la siguiente consulta.

¿Alguna idea? gracias.
View profile  Send private message
melvyn


Posts: 333
Posted: 03/23/2009, 5:08 AM

Puedes replantear el problema? No entiendo lo que dices. Pero puedes usar variables locales o de cualquier lado dentro del ambito de alcance de tu sistema (en mi caso php).

Describenos el problema de otra manera a ver ?
_________________
Melvyn Perez
Puro Codigo
http://purocodigo.com
View profile  Send private message
alfonso

Posts: 121
Posted: 03/23/2009, 6:45 AM

Si, vamos a ver si me explico.

Cuando creas un grid, por ejemplo para mostrar la noticia 43, en la clausula WHERE te deja poner que quieres que sea igual a un parametro, entonces por la URL le pasas como parámetro la 43 y el grid tan solo muestra esa noticia. (WHERE noticia_id={s_id})

El caso que yo quiero es que en la claúsula WHERE pudiera hacer una comparación con una variable de otra consulta, es decir, imaginate que quiero comparar el campo {lugar} de la noticia 43, con otro campo de otra tabla.

Para ello debo hacer una consulta como la primera y sacar la información de la noticia 43. Luego tendría en un label llamado Lugar con la información de lugar.

Pues bien, yo quiero luego utilizar el valor de esa label de lugar(variable) para hacer otra consulta con esa variable. Por ejemplo para mostrar todas las noticias que han ocurrido en ese mismo lugar. Imagínate a modo de noticias relacionadas.

Vamos que el caso es que yo quiero saber como meter una variable en la consutla, sin que sea un parametro por URL, sino una variable que pudiera crear yo en un custom code en php o sacarla de una label con la función GetText() de codecharge.
View profile  Send private message
melvyn


Posts: 333
Posted: 03/23/2009, 6:53 AM

Digamos para ilustrar que tienes las tablas noticias y fotos y quieres hacer eso que dices, llamar contenido de fotos atendiendo el parametro de noticias.
tabla noticias:
id
lugar
noticia

tabla fotos
id
imagen
descripcion_imagen
noticia (aqui ponemos el id de la tabla noticia para vincular esta tabla con la anterior, osea: es el parametro que ambas tablas tienen en comun)

tu SQL seria algo asi como
  
SELECT noticias_id, noticias_lugar, noticias_descripcion, imagen, descripcion_imagen  
FROM noticias LEFT JOIN fotos ON noticia.id = fotos.noticia WHERE lugar = {s_lugar}  

La linea anterior llama cada elemento un por uno, la condicion es que el campo id en noticias sea igual a fotos.noticia (es el campo en comun, necesario para lo que buscas).

El codigo anterior, abreviado:
  
SELECT * FROM noticias LEFT JOIN fotos ON noticia.id = fotos.noticia WHERE lugar = {s_lugar}  

Saludos,
_________________
Melvyn Perez
Puro Codigo
http://purocodigo.com
View profile  Send private message
melvyn


Posts: 333
Posted: 03/23/2009, 7:00 AM

Otra cosa:

Si tienes el valor dentro del where y estas tomando ese valor desde la url, entonces no necesitas vincular ambas tablas.

El valor es un parametro de la url, a mano puedes pedirlo cuando gustes usando $_GET["lugar"] o bien: con el Visual Query Builder, no sé donde te pierdes, es muuuy facil.

Si el valor no está en la url, sino en algun otro lado, puedes asignarlo en un label, y en las propiedades de ese label cambiar ControlSourceType desde Database Column a Code Expression. Debajo de esa propiedad esta la propiedad ControlSource, alli escribes
$Container->mi_label->SetValue({lugar}) y listo. Cuando necesites el valor lo llamas como $Container->mi_label->GetValue();
_________________
Melvyn Perez
Puro Codigo
http://purocodigo.com
View profile  Send private message
alfonso

Posts: 121
Posted: 03/23/2009, 12:20 PM

Vale melvyn, muchas gracias por las molestias, pero yo voy mas allá de lo que me dices.
Lo que tu me dices sé como utilizarlo, ahora te pongo mi caso real de lo que quiero que es algo más complejo.

El caso es que tengo un campo llamado tags en la tabla noticias, y luego tengo otra tabla de artículos donde también tengo un campo llamado tags.
Lo que yo quiero es que según la noticia que muestre, mire las tags, y de todas las noticias y artículos que coincida alguna tag (separadas por espacios) muestre el título y el ID para poder hacer el enlace.

Entonces claro, yo en lo que me pierdo es en hacer esa consulta, había pensado en hacer primero una consulta para sacar las tags de la noticia que muestro y luego otra consulta con LIKE poniendo esa cadena de tags y buscando en la tabla artículos y noticias, pero el problema es que no se como poner la cadena de tags de la noticia que estoy viendo en la segunda consulta.

A ver si me puedes echar un cable. Mil gracias tio.
View profile  Send private message
alfonso

Posts: 121
Posted: 03/24/2009, 12:29 PM

melvyn, puedes echarme una mano???
View profile  Send private message
melvyn


Posts: 333
Posted: 03/24/2009, 1:43 PM

Revisa tus mensajes privados. Ayer te respondi pero el foro no me aceptaba. Igual hoy, por alguna razon no puedo postear en este hilo.
_________________
Melvyn Perez
Puro Codigo
http://purocodigo.com
View profile  Send private message

Add new topic Subscribe to topic   


These are Community Forums for users to exchange information.
If you would like to obtain technical product help please visit http://support.yessoftware.com.

MS Access to Web

Convert MS Access to Web.
Join thousands of Web developers who build Web applications with minimal coding.

CodeCharge.com

Home   |    Search   |    Members   |    Register   |    Login


Powered by UltraApps Forum created with CodeCharge Studio
Copyright © 2003-2004 by UltraApps.com  and YesSoftware, Inc.