#1• Desde una aplicación Android envío una variable del tipo Array. Esta la recibo como un String. En concreto la variable contiene una serie de tipos de establecimientos, Restaurante, Bar, Bar-Restaurante, etc. Esta es: $tiposfin=$_POST['subTiposFin']; En Android tiene el formato: [Restaurante, Bar, Bar-Restaurante, ] y en el mismo formato de cadena la recibo en php. Lo que hago, es convertirla en un array, primero eliminando los corchetes: $reemplazar1=str_replace("[", "", $tiposfin); $reemplazar2=str_replace("]", "", $reemplazar1); Y después convertirla en un array: $tipos=explode(', ', $reemplazar2); El problema surge a la hora de recorrer el array para la consulta, tanto con for, foreach o while. La consulta que me interesa es: foreach($tipos as $check) { $result = mysql_query("select id_cliente, nombre, tipo, precio, icono1, localidad FROM restauracion WHERE tipo = '$check'"); } He hecho un var_dump() del array $tipos con el siguiente resultado: array(6) { [0]=> string(11) "Restaurante" [1]=> string(4) " Bar" [2]=> string(16) " Bar-Restaurante" [3]=> string(15) " Comida rápida" [4]=> string(19) " Comida para llevar" [5]=> string(21) " Evento gastronómico" } El problema surge cuando al seleccionar varias opciones solo me devuelve el último valor, si por ejemplo seleccione Restaurante y Bar solo me devuelve la opción correspondiente a Bar. A ver si alguien me puede ayudar que no se me ocurre nada y no paro desde hace tiempo de darle vueltas. Gracias de antemano. |
#2• Hola Joaquín, tienes 2 opciones para solucionar eso; y debes elegir si harás 1 sola consulta a la base de datos o harás una consulta por cada elemento del array. Si eliges hacer una consulta por elemento (2da opcion) antes de cerrar el foreach debes procesar los resultados; de esta forma en cada iteracción el script trabaja con el valor actual. La 1ra opción implica que tras cada iteracción agregues un ';' (colon o semi-colon -no sé como lo llaman allá-) y dentro del foreach lo que haces es concatenar los SQL de cada sentencia ( $sql .= "nueva sentencia con el valor actual;" ); y al finalizar el foreach ejecutas la consulta a la base de datos (sacas el sql_query fuera del foreach). Esta última generalmente es la mejor opción; pero es más complicadilla. Saludos |
ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un nuevo tema en lugar de responder al actual |
Opciones: Ir al subforo: |
Permisos: TU NO PUEDES Escribir nuevos temas TU NO PUEDES Responder a los temas TU NO PUEDES Editar tus propios mensajes TU NO PUEDES Borrar tus propios mensajes |
Temas similares | ||||
Tema | Usuarios | Respuestas | Visitas | Actividad |
---|---|---|---|---|
Por: JoaoTeamm, el 31/Ago/2012, 13:11 | 13 | 14k | Sep/12 |