PHP - Problemas al recoger un select multiple en php

 
Vista:

Problemas al recoger un select multiple en php

Publicado por Israel (3 intervenciones) el 27/03/2024 10:45:20
Buenas tardes,

EStoy realizando un buscador y tengo un problema con la recogida de datos de un select multiple.

Lo he intentado recoger de estas dos maneras:
1
2
3
$ambito = $_POST['ambito'];
 
$ambito = !empty($_POST['ambito']) ?? NULL;

Para luego hacer una consulta a mysql de esta manera:
1
2
3
4
5
6
7
8
9
10
11
12
if (is_countable($ambito) && count($ambito) > 0){
	$sql = $sql. " and (";
	$contador = 0;
    for ($i=0;$i<count($ambito);$i++){
		if($contador<(count($ambito)-1)){
			$sql = $sql. " idAmbitoNotoriedad =".$ambito[$i]." or ";
			$contador++;
		}else{
			$sql = $sql. " idAmbitoNotoriedad =".$ambito[$i].")";
		}
	}
}

No consigo que funcione de la manera correcta, si el usuario no selecciona ninguno me falla en la declaracion si lo declaro de la primera manera, pero si lo declaro de la segunda me falla en el count del for.

Me podriais ayudar con esto?

Muchas gracias

Un saludo
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
Imágen de perfil de Ivan

Problemas al recoger un select multiple en php

Publicado por Ivan (118 intervenciones) el 28/03/2024 09:50:22
Hola,

prueba con este código:

1
2
3
4
5
6
7
8
9
10
11
12
13
$ambito = $_POST['ambito'];
if (is_array($ambito) && count($ambito) > 0) {
    $sql .= " AND (";
    $contador = 0;
    foreach ($ambito as $valor) {
        if ($contador > 0) {
            $sql .= " OR ";
        }
        $sql .= "idAmbitoNotoriedad = " . $valor;
        $contador++;
    }
    $sql .= ")";
}

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

Problemas al recoger un select multiple en php

Publicado por Israel (3 intervenciones) el 08/04/2024 11:35:43
Muchas gracias por la respuesta, me funciono correctamente!!!
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