Ver Mensaje Individual
  #8 (permalink)  
Antiguo 04/06/2003, 11:10
Avatar de Bravenap
Bravenap
 
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 22 años, 5 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!