Foros del Web » Programando para Internet » ASP Clásico »

Campo de una tabla !!!

Estas en el tema de Campo de una tabla !!! en el foro de ASP Clásico en Foros del Web. El título un poco patético, pero bueno, la cuestión es: Tengo una tabla de artículos con diferentes precios: Precio1, Precio2, ... Tengo otra tabla de ...
  #1 (permalink)  
Antiguo 17/12/2002, 07:20
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 22 años, 6 meses
Puntos: 0
Campo de una tabla !!!

El título un poco patético, pero bueno, la cuestión es:

Tengo una tabla de artículos con diferentes precios: Precio1, Precio2, ...

Tengo otra tabla de clientes que tiene el campo tarifa los valores son (1, 2, 3...)

Al poner los artículos en pantalla, quiero que salga el precio del cliente que ha entrado.

No quiero poner que si la tarifa del cliente es 1, ponga precio1, así con las tarifas que tenga.

Si pongo esto

<% Response.Write RS1("Precio" & Session ("Tarifa"))%>

da error.

Puedo montar una variable

<% tarifa = "Precio" & Session ("Tarifa")%

y luego hacer:

<% Response.Write RS1(Tarifa) %> (claro esta que da error)

Alguien puede ayudarme !!!
  #2 (permalink)  
Antiguo 17/12/2002, 08:36
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
kieres concatenar variables o ke?

1.
<% Response.Write RS1("Precio") & Session ("Tarifa")%>

2.
<% tarifa = "Precio" & Session ("Tarifa")%>

3.
<% Response.Write RS1("Tarifa") %>

corregido...pero no que quieres hacer
  #3 (permalink)  
Antiguo 17/12/2002, 09:18
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 23 años, 3 meses
Puntos: 1
Creo que lo que intentas hacer es que en funcion del cliente le de un precio u otro, verdad?
Por ejemplo una lista de precios para los cliente genericos, otra para los habituales y otra para los preferentes.

Bueno pues lo que yo haria seria en UNA SOLA TABLA meter estos campos:
PrecioTipocliente1 -- NUMERICO O MONEDA
PrecioTipocliente2 -- NUMERICO O MONEDA
PrecioTipocliente3 -- NUMERICO O MONEDA

Aparte de los datos del producto:
ID
NOMBRE
DESCRIPCION
ETC

Despued tras haberse identificado el usuario mantienes una variable de sesion que usas para hacer la consulta SQL.
Entonces los precios que le van a aparecer a ese cliente son los de su categoria.

Otra variante para no tener que meter todos los precios seria tener uno solo y definir los demas asi:
preciobase=rs("precio")
PrecioTipocliente1=preciobase-(preciobase*0.10) ' - 10% descuento sobre tarifa
PrecioTipocliente2=preciobase-(preciobase*0.20) ' - 20% descuento sobre tarifa
PrecioTipocliente3=preciobase-(preciobase*0.30) -' 30% descuento sobre tarifa
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net

Última edición por maestro; 17/12/2002 a las 09:24
  #4 (permalink)  
Antiguo 17/12/2002, 11:52
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 22 años, 6 meses
Puntos: 0
Creo que el problema lo tenia al concatenar las sentencias.

El la tabla de Artículos, tengo id_referencia, id_descripcion, id_familia, id_precio1, id precio2, ....

en la tabla de clientes, tengo, id_cliente, id_nombre, ... id_tarifa. (char(1), con valor 1,2...)

Cuando el cliente valida la entrada, cargo las siguientes variables de sesion, tarifa (1,2,3), cliente.

Así cuando cargo los artículos, busco el precio correspondiente.

No se si me he explicado bien.



....
<td width="100" valign="top" bgcolor="#FFFFE1" align="center"><font color="#336699"><b><% Response.Write RS1("Referencia")%></b></font></td>
<td width="300" valign="top" bgcolor="#FFFFE1" align="center"><font color="#336699"><% Response.Write RS1("Descripcion")%>&nbsp;</font></td>
<td width="50" valign="top" bgcolor="#FFFFE1" align="center"><p align="right"><font color="#336699"><% Response.Write RS1("Cantidad")%>&nbsp;</font></td>
<%if Session ("ent") = True then%>
<td width="50" valign="top" bgcolor="#FFFFE1" align="center"><p align="right"><font color="#336699"><% Response.Write RS1("Precio1")%>&nbsp;</font></td>
<td width="50" valign="top" align="center" ><input name="cantidad<%=posi%>" size=3 style="float: right"></td>
<%End If%>
<td widht="10" valign="top" align="center">
<% RS1.Movenext %>
</tr>
<% Loop %>


No se si así lo vereis mas claro. La variable ent, se pone a true, cuando se valida el usuario, si no, no ves los precios.

Donde pone ("precio1"), es la tarifa uno, esta puesta para que no me de error. Es aquí donde tengo el problema.

Si pongo

if Session("tarifa") = 1 then .. Response.Write Rs("precio1")
if Session("tarifa") = 2 then .. Response.Write Rs("precio1")
...
si que funciona, pero me gustaría poderlo hacer de la otra manera. Ahora pruebo una cosa a ver. Os cuento si lo consigo.

Igualmente, si alguien lo sabe, se lo agradecería.
  #5 (permalink)  
Antiguo 17/12/2002, 12:02
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 22 años, 6 meses
Puntos: 0

<%if Session ("ent") = True then%>

<% wtarifa = "Precio" & Session ("Tarifa") %>

<td width="50" valign="top" bgcolor="#FFFFE1" align="center"><p align="right"><font color="#336699"><%
Response.Write RS1("wtarifa")%>&nbsp;</font></td>

<td width="50" valign="top" align="center" ><input name="cantidad<%=posi%>" size=3 style="float: right"></td>

<%End If%>


He probado esto, como me decía bakanzipp, pero sige dando error, me imagino que busca wtarifa, como si fuera un campo de la tabla.

En teoría wtarifa tiene el valor "precio1", pero como se lo pongo para que lo lea del recordset.

  #6 (permalink)  
Antiguo 17/12/2002, 12:06
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 22 años, 6 meses
Puntos: 0
PREGUNTA

alguien sabe si se puede leer el campo número "x" de un registro.

Por que así lo solucionaria, imaginamos que los precios son los campos numero 4,5,6,... del registro.

Pues tengo que leer el campo 3+(tarifa) que vale, 1,2,3, ...
  #7 (permalink)  
Antiguo 17/12/2002, 20:27
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 23 años, 3 meses
Puntos: 1
Que pregunta.. pùes claro.
Creas un recordset con una SQL que te valga
<%
SQL"SELECT * from tutabla where ID=12" ' Por ejemplo
valor=rs("campox")
%>

Ya tienes el valor de el campo X del registro 12
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
  #8 (permalink)  
Antiguo 18/12/2002, 01:43
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 22 años, 6 meses
Puntos: 0
Creo que no me he explicado bien.

No quiero leer los registros que contengan el valor "12".

Imaginemos la tabla

Tabla Artículos Tabla Cliente Tabla Pedido

Campo1 Referencia Codigo Fecha
Campo2 Descripcion Nombre Cliente
Campo3 Familia Tarifa Artículo
Campo4 Precio1 Cantidad
Campo5 Precio2 Precio
Campo6 Precio3


Digamos que tengo tres tablas, como estas.

Como dije, tengo guardo en unas variables de session, el cliente, la tarifa del cliente (1,2,3), y otras cosas.

Entonces cuando leo el artículo, quiero coger el precio según la tarifa. (si la tarifa es 1, tengo que leer el precio1, si la tarifa es 2, leer el precio2, si la tarifa es 3, leer el precio3.)

Seria leer el campo "Precio" & el valor de tarifa = Precio1
(contando que tarifa es 1)

leeria precio1.

No se si han quedado mas claro.
  #9 (permalink)  
Antiguo 18/12/2002, 08:48
 
Fecha de Ingreso: noviembre-2002
Mensajes: 249
Antigüedad: 22 años, 6 meses
Puntos: 0
Ya está:

(jo mira que era facil).

<%regi = 3 + Session ("clt")%>
<td width="50" valign="top" bgcolor="#FFFFE1" align="center"><% Response.Write RS1(regi)%>&nbsp;</td>


Session ("clt"), contiene el valor del campo tarifa (1, 2, ...)
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 17:32.