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

sobre DB pregunta corta

Estas en el tema de sobre DB pregunta corta en el foro de ASP Clásico en Foros del Web. hola amigos, Tengo el la base de datos un campo llamado "articulos" dentro de estos hay 10 articulos distintos, hasta ahora los mostraba de la ...
  #1 (permalink)  
Antiguo 04/06/2003, 04:26
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 21 años, 7 meses
Puntos: 6
sobre DB pregunta corta

hola amigos,

Tengo el la base de datos un campo llamado "articulos"

dentro de estos hay 10 articulos distintos, hasta ahora los mostraba de la siguiente manera de uno en uno de la siguente manera

"SELECT * from productos WHERE articulos = 'a' ORDER BY precio"

pero ahora necesito que se muestre el tipo a, b y c, no se me ocurre otra que lo siguente

"SELECT * from productos WHERE articulos = 'a' & 'b' & 'c' ORDER BY precio"

y claro....... me cole

me podeis ayudar con el codigo????


  #2 (permalink)  
Antiguo 04/06/2003, 05:03
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 7 meses
Puntos: 4
Creo que lo que pasa es que al utilizar "&" obligas a que el artículo sea a,b y c a la vez y por eso no te devuelve ningún resultado. Lo que tendrías que hacer es elegir los artículos que sean a, b o c, es decir, si no me equivoco:

Código:
"SELECT * from productos WHERE articulos = 'a' OR  'b' OR  'c' ORDER BY precio"
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #3 (permalink)  
Antiguo 04/06/2003, 06:14
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 21 años, 7 meses
Puntos: 6
hola Bravenap

de esta forma lo que hace es mostrar todos los tipos

(cosa rara tambien)
  #4 (permalink)  
Antiguo 04/06/2003, 06:38
Avatar de Subotai  
Fecha de Ingreso: mayo-2003
Ubicación: Irúnforge
Mensajes: 198
Antigüedad: 21 años, 1 mes
Puntos: 1
Entonces lo que quieres no es mostrar TODOS los articulos a la vez?
Si lo que ne cesitas es mostrar los articulos de un solo tipo (a,b,c), podrias hacer algo asin:

(supongo que recibiras de alguna manera que tipo de articulos desea el usuario ver, yo te lo pongo smo si lo hubieras guardado en una variable,ok?)

pues alla va:
----------------------------------------------------------------------------------------------------------------------------------------------------------
Dim tipo_articulo
tipo_articulo=Request.Form("tipo_articulo")

SQLTXT="SELECT * FROM productos WHERE articulos ='"&tipo_articulo&"' ORDER BY precio"
----------------------------------------------------------------------------------------------------------------------------------------------------------

De esta manera mostraras los articulos deseados, el unico cambio es que en vez de poner directamente en el codigo que articulos se van a mostrar, se mostraran los articulos cuyo tipo coincida con el valor de la variable tipo_articulo.

Ojo con las comillas!!! comilla simple,comilla doble,&!!!!
yo tuve varios quebraderos de cabeza con eso...
  #5 (permalink)  
Antiguo 04/06/2003, 06:51
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 7 meses
Puntos: 4
Pues tampoco entiendo qué es lo que pretendes entonces. Prueba lo de Subotai y si no es eso... sólo se me ocurre que quieras mostrar a, b y c ordenados por precio pero que estén agrupados por tipo, es decir, primero todos los artículos a ordenados por precio, luego todos los b ordenados también, etc.

Si es eso tendrías que poner "ORDER BY articulos AND precio"

Pensando otra posibilidad a lo mejor lo que querías es esto

"SELECT * from productos WHERE articulos = 'a' AND articulos = 'b' AND articulos = 'c' ORDER BY precio"

Bueno, tú dirás.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #6 (permalink)  
Antiguo 04/06/2003, 10:13
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 21 años, 7 meses
Puntos: 6
Gracias Subotai

no es lo q pedia pero me a servido de ayuda tambien tu ejemplo

Bravenap Gracias a ti tambien
tu te acercas mas a lo que quiero pero por algun motivo no funciona

en este caso no muestra nada dice q no hay datos


Explicacion mas detallada de lo q busco

Tengo una DB con entre otros un campo que se llama articulos
dentre de este campo tengo articulos pongamos a,b,c,d,f,g
para mostrar todos pongo

"SELECT * from productos WHERE articulos ORDER BY ref"

y para mostrar uno pongo

"SELECT * from productos WHERE articulos = 'a' order by loq sea"

pero para mostrar dos o tres..............
no me sale ya he probado todo esto

SELECT * from productos WHERE articulos = 'a' AND articulos = 'b' AND articulos = 'c' ORDER BY precio
SELECT * from productos WHERE articulos = 'a' OR 'b' OR 'c' ORDER BY precio
SELECT * from productos WHERE articulos = 'a' AND articulos = 'b' AND articulos = 'c' ORDER BY precio

y muchoss mas
  #7 (permalink)  
Antiguo 04/06/2003, 11:03
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Bueno para lo que quieres necesitas utilizar el operador OR, es decir que sea a o que sea b, o que sea c, trata así:

SELECT * from productos WHERE articulos = 'a' OR articulos='b' OR articulos='c' ORDER BY precio


Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #8 (permalink)  
Antiguo 04/06/2003, 11:10
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 7 meses
Puntos: 4
Bien, vale, ya lo he pillado Me voy a enrollar un poco.

Vamos a ver, cuando haces una consulta SQL a una base de datos guardas los datos que coincidan con las condiciones designadas en un objeto recordset. Ese recordset es como una matriz que contiene todos los valores recogidos por la consulta, de manera que si ninguna condición se ha confirmado el objeto recordset estará vacío.

Ahora bien, si las condiciones se confirman en más de una celda del campo, el objeto recordset tendrá varios valores. Por tanto, para mostrar todos los valores tendremos que irnos al primero, mostrarlo, movernos al siguiente, mostrarlo, .... y así hasta que se haya llegado al final del objeto recordset.

Código PHP:
<%
SET base Server.CreateObject("ADODB.Connection")
base.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="Server.MapPath("./tienda.mdb")
sql "SELECT * FROM productos WHERE articulos='a' ORDER BY precio"
SET RS Server.CreateObject ("ADODB.RecordSet")
RS.Open sqlbase

IF NOT RS.EOF THEN 'si no se ha llegado al final, es decir, que el recodset no está vacío
    RS.Movefirst  '
nos movemos al primer valor
    
DO UNTIL RS.EOF  comenzamos un bucle hasta que se acaben los valores
%>
Artículo <%=RS("articulos")%> REF.: <%=RS("ref")%><br>
Precio <%=RS("precio")%>&euro;<br>
<
hr>
<%
    
RS.Movenext
    LOOP
END 
IF    
%> 
Bien, si en el caso de que sólo haya un registro en el que el campo articulos tenga el valor a sólo se escribirá algo así:

Artículo a REF.: 4564
Precio 10€
------------------


Si hay dos:

Artículo a REF.: 4564
Precio 10€
------------------
Artículo a REF.: 3164
Precio 15€
------------------


Pero en tu caso, quieres que se muestren los artículos que sean a o b o c, por lo que la sentencia SQL debería ser así:

Código PHP:
sql "SELECT * FROM productos WHERE articulos='a' OR articulos='b' OR articulos='c' ORDER BY precio" 
Suponiendo que el b sea el más barato, luego el c y finalmente el a, quedaría así:

Artículo c REF.: 8796
Precio 4€
------------------
Artículo b REF.: 1487
Precio 10€
------------------
Artículo a REF.: 8971
Precio 23€
------------------


Finalmente no te olvides de cerrar tanto el objeto recordset como la base de datos para evitar problemas, aunque en principio se cierran solas.

Código PHP:
<%
sql.Close
SET sql 
Nothing
base
.Close
SET base 
Nothing
%> 
Espero que ahora haya quedado todo claro.

Suerte.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #9 (permalink)  
Antiguo 04/06/2003, 11:50
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 21 años, 7 meses
Puntos: 6
Bravenap se t adelanto u_goldman aunq tu explicacion es muy buena y seguro q servira a mas de uno.

Problema resuelto.

Al final resulto ser una tonteria OR en vez de AND o & y repitiendo el campo con el igual ---- articulo =' '
--


Gracias a todos y ya que estais os hare una pregunta mas sobre esto para no perder el hilo ....

Lo comento en una nueva pregunta en el general
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 22:05.