Foros del Web » Programando para Internet » PHP »

Pasarle un Array a un Select (SQL)

Estas en el tema de Pasarle un Array a un Select (SQL) en el foro de PHP en Foros del Web. Buenas, estoy probando de hacer un tienda virtual y despues de muchos intentos consigo hacer un array de valores, con el id de los objetos ...
  #1 (permalink)  
Antiguo 02/04/2003, 05:17
Avatar de Darksoft  
Fecha de Ingreso: mayo-2002
Mensajes: 106
Antigüedad: 15 años, 7 meses
Puntos: 0
Pasarle un Array a un Select (SQL)

Buenas, estoy probando de hacer un tienda virtual y
despues de muchos intentos consigo hacer un array de valores, con el id de los objetos y meterlo en una variable de session.
La pagina de "ver carrito" me recoje esta variable (3,2,8,.....)
pero la cuestion es que no se como hacer un select para que me devuelva los registros con esos id.
En pricipio seria algo asi como
SELECT * FROM items
WHERE id IN (array de valores)

Supongo que habria que meterle un foreach o algun bucle, pero todas mis prubas me han devuelto MySQL sintax error

Gracias
  #2 (permalink)  
Antiguo 02/04/2003, 06:26
 
Fecha de Ingreso: marzo-2003
Ubicación: València
Mensajes: 53
Antigüedad: 14 años, 8 meses
Puntos: 0
Prueba a hacer un bucle "for"

En cada iteración realizas la consulta con cada id y el resultado lo guardas en un nuevo array de registros!


for $i=0 to tamaño(vector_id)
do

$resultado[$i]=mysql_query("SELECT * FROM items WHERE id='$vector_id[$i]';

done


no se si te servirá pero me parece lógico

adios!
  #3 (permalink)  
Antiguo 02/04/2003, 09:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si haces esto:
SELECT * FROM items WHERE id IN (array de valores)

El "array de valores" ha de ser una "lista de valores" separados por comas .. para eso si ya tienes un array con esos valores usa:

implode(",",$tuarray)

Osese .. sería algo tipo:

Código PHP:
$sql="SELECT * FROM items WHERE id IN (".implode(",",$tuarray).")";
$resultado=mysql_query($sql) or die (mysql_error()); 
(puedes hacer un echo $sql para comprobar si la sintax generada para la sentencia SQL es correcta .. o lo q esperas)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 02/04/2003, 10:12
Avatar de Darksoft  
Fecha de Ingreso: mayo-2002
Mensajes: 106
Antigüedad: 15 años, 7 meses
Puntos: 0
muchas gracias

eso es exactamente lo que queria, muchas gracias
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 03:12.