PHP - crear búsqueda con datos de un Array.

 
Vista:
sin imagen de perfil

crear búsqueda con datos de un Array.

Publicado por Mateo (2 intervenciones) el 24/05/2018 15:28:13
Buenas tardes a tod@s;

Estoy con un proyecto de visualización de datos de clientes. El caso es que hasta ahora lo he realizado con un desplegable, de forma que, al seleccionar un cliente del desplegable, me mostraba los datos de ese cliente.

Ahora, en vez de hacerlo con un desplegable, quiero hacerlo con multiselección, es decir, que pueda seleccionar varios clientes y que se me muestre la información de cada uno en una gráfica, por ejemplo.

El tema es que no tengo muy claro como hacerlo, se me había ocurrido meter todos los seleccionados en un array y desde ahí, realizar la consulta a MySQL.

Pregunta1 ¿Cómo le paso a la query los parámetros de mi array para que me muestre los datos?.

Si alguien sabe como hacer esto de otra forma, estaría encantado de escuchar.

He pensado en limitar los seleccionados a 4, por lo que metería las selecciones en 4 variables, el tema es que no quiero limitar el número de selecciones.

Un saludo y mil gracias.

PD: He buscado en el foro entre los más de 42000 post que hay, pero sólo he encontrado como pasar un array con datos de MySQL a php. Si alguien tiene o encuentra algo con lo que busco, agradeceré los enlaces.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 100
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

crear búsqueda con datos de un Array.

Publicado por J (43 intervenciones) el 24/05/2018 18:16:37
Buenas Mateo

Yo esto lo veo más en plan Javascript, es decir, seleccionas los usuarios que sean y mediante AJAX creas el gráfico. Eso sí en vez de un select múltiple yo lo haría por ejemplo con checks, queda más visual y es más fácil a la hora de implentar. Yo por ejemplo, en un tema parecido he usado algo así:

1
2
3
4
5
6
7
8
9
10
// Recogemos todos los checks clicados
var divCont = document.getElementById('usuarios');
var checks  = divCont.getElementsByTagName('input');
var usuarios = [];
for(var i=0;i<checks.length; i++){
	if(checks[i].checked == true){
		usuarios.push(checks[i].value);
	}
}
var usuarios_json = JSON.stringify(usuarios);

Como ves uso divs en vez de select con sus checks, creo un array para detectar los que están cliqueados, estos los sumo al array y después los convierto en una cadena JSON que pasó por AJAX a mi archivo PHP allí decodifico la cadena JSON y ya tengo mi array listo para poder funcionar con él. Eso sí tienes que tener en cuenta que en mi array estoy guardando la posición para saber cuáles se han pulsado y cuáles no. Tú tendrás que utilizar la misma ordenación que hayas utilizado en los divs para saber cuales entran en tu gráfica y cuáles no.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

crear búsqueda con datos de un Array.

Publicado por Mateo (2 intervenciones) el 25/05/2018 15:21:47
Buenas tardes y gracias por tu ayuda.

Lo hago con selección, porque son 100 clientes, por lo que con checks es una buena opción si tiene pocos.

por eso estaba buscando hacerlo como indico.

Yo supongo que hay formas de meter en un array lo seleccionado y una vez se tenga hacer la consulta tipo:

1
<?PHP $MiVariable = mysqli_query($conexion, "SELECT * FROM tabla Where id = (array)"); ?>

Buscando por el internet he encontrado algo como:

1
<?PHP $statement = mysqli_prepare($link , "SELECT name FROM users WHERE id IN ('".implode(',', $prepare)."')"); ?>

No se si alguien me puede echar una manita con esto. ;-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 20
Ha aumentado su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

crear búsqueda con datos de un Array.

Publicado por Simon (6 intervenciones) el 25/05/2018 20:01:18
Se me ocurre que ejecutes la query x veces como clientes quieras y posteriormente los vayas guardando en un array en php:

1
2
3
4
5
6
7
8
9
<?php
 
$clientes = [idClientes];
$x = 0;
for($icliente as $id){
$array[$x] = mysqli_query($conexion,"select * from tabla where id='$id'");
$x+=1;
}
?>

Es lo que se me ocurre así a voz de pronto, aunque este método cargaría bastante el servidor al llamarlo x veces.

Espero que te sirva de ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

crear búsqueda con datos de un Array.

Publicado por Yamil (888 intervenciones) el 25/05/2018 20:12:43
Para esto es mejor un IN y asi no haces tantas llamadas a la BD.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar