
Quote from Palamar on November 14, 2022, 11:52 pmHola gente:
Tengo una consulta SQL que filtra los registros cuya ID sea X
$sqlQuerys[0]="SELECT * FROM general WHERE id=?";Mi pregunta es cómo hacer para que filtre más de un ID sin estar predeterminado la cantidad a filtrar. Por ejemplo, en alguna consulta pueden ser 3, en otras 4, y en otras 20.
He probado esto sin éxito:
WHERE ID IN (?);pasando en ? el cojunto de ID divididos por coma (1,3,4,6)
No sé si me explico bien, pero me gustaría saber de qué manera logro el resultado sin predeterminar la consulta o sin hacer una consulta por cada ID.
Saludos!
Hola gente:
Tengo una consulta SQL que filtra los registros cuya ID sea X
$sqlQuerys[0]="SELECT * FROM general WHERE id=?";
Mi pregunta es cómo hacer para que filtre más de un ID sin estar predeterminado la cantidad a filtrar. Por ejemplo, en alguna consulta pueden ser 3, en otras 4, y en otras 20.
He probado esto sin éxito:
WHERE ID IN (?);
pasando en ? el cojunto de ID divididos por coma (1,3,4,6)
No sé si me explico bien, pero me gustaría saber de qué manera logro el resultado sin predeterminar la consulta o sin hacer una consulta por cada ID.
Saludos!

Quote from luishp on November 15, 2022, 1:06 pm@palamar yo hago algo parecido de esta manera:
$sqlQuerys[0]="SELECT * FROM general WHERE id=? OR id=? OR id=? OR id=? OR id=? OR id=? OR id=? OR id=?";En mi ejemplo puedes seleccionar hasta 8 id diferentes. Si solo necesitas uno, el resto los pones en un valor que no devuelva resultados, como por ejemplo cero.
Saludos.
@palamar yo hago algo parecido de esta manera:
$sqlQuerys[0]="SELECT * FROM general WHERE id=? OR id=? OR id=? OR id=? OR id=? OR id=? OR id=? OR id=?";
En mi ejemplo puedes seleccionar hasta 8 id diferentes. Si solo necesitas uno, el resto los pones en un valor que no devuelva resultados, como por ejemplo cero.
Saludos.

Quote from luishp on November 15, 2022, 1:26 pm@palamar creo que el operador IN no te está funcionando porque envías los datos como una cadena de texto y los id son numéricos.
¿Has probado a enviar un Array?
@palamar creo que el operador IN no te está funcionando porque envías los datos como una cadena de texto y los id son numéricos.
¿Has probado a enviar un Array?

Quote from Palamar on November 17, 2022, 3:06 pmBueno, no he logrado que funcione aún, lo dejo por acá por si alguien tiene otra idea.
Algunas cosas que estuve viendo...si pongo
WHERE ID IN (12,18,22);me devuelve perfectamente la consulta pero si pongo:
WHERE ID IN (?);Y le paso los datos con un array o con un String "12,18,22" no funciona.
Quizás si paso los datos por separado si que funcione pero al no ser la cantidad tendría que poner al menos 100 signos de pregunta lo cual veo impráctico.
Bueno, no he logrado que funcione aún, lo dejo por acá por si alguien tiene otra idea.
Algunas cosas que estuve viendo...si pongo
WHERE ID IN (12,18,22);
me devuelve perfectamente la consulta pero si pongo:
WHERE ID IN (?);
Y le paso los datos con un array o con un String "12,18,22" no funciona.
Quizás si paso los datos por separado si que funcione pero al no ser la cantidad tendría que poner al menos 100 signos de pregunta lo cual veo impráctico.

Quote from luishp on November 17, 2022, 8:53 pm@palamar creo que tendría que revisar el plugin neoPhp para ver si encuentro una solución que permita hacer lo que necesitas.
Si consigo encontrar tiempo lo haré.
@palamar creo que tendría que revisar el plugin neoPhp para ver si encuentro una solución que permita hacer lo que necesitas.
Si consigo encontrar tiempo lo haré.

Quote from Palamar on November 18, 2022, 2:20 amHe probado pasar los números por separado y sí que funciona, o sea pongo:
WHERE ID IN (?,?,?);Y le paso: 12::18::22 y funciona perfectamente, quiere decir que la consulta la hace correctamente pero, es lo que digo en el post anterior, lo veo impráctico cuando la consulta cambia constantemente. Le encontré una solución al menos por ahora pero requiere de restar la cantidad de ID a un total, poner la consulta con 30 '?' y rellenar con ceros los que no se usan y al menos funciona.
@luishp sería genial poder modificarlo, aunque parece puntual estoy seguro que va a funcionar para otras consultas también.
Desde ya gracias!
He probado pasar los números por separado y sí que funciona, o sea pongo:
WHERE ID IN (?,?,?);
Y le paso: 12::18::22 y funciona perfectamente, quiere decir que la consulta la hace correctamente pero, es lo que digo en el post anterior, lo veo impráctico cuando la consulta cambia constantemente. Le encontré una solución al menos por ahora pero requiere de restar la cantidad de ID a un total, poner la consulta con 30 '?' y rellenar con ceros los que no se usan y al menos funciona.
@luishp sería genial poder modificarlo, aunque parece puntual estoy seguro que va a funcionar para otras consultas también.
Desde ya gracias!