Foros del Web » Programando para Internet » PHP »

Raro raro raro

Estas en el tema de Raro raro raro en el foro de PHP en Foros del Web. Hola buenas, Este es mi primer post en el foro y espero que no sea el ultimo. El caso es que tengo un problema un ...
  #1 (permalink)  
Antiguo 13/12/2012, 06:34
 
Fecha de Ingreso: diciembre-2012
Mensajes: 75
Antigüedad: 11 años, 4 meses
Puntos: 2
Pregunta Raro raro raro

Hola buenas,

Este es mi primer post en el foro y espero que no sea el ultimo.

El caso es que tengo un problema un poco raro de esos que miras 20 veces y no ves pero que seguro que alguien de un vistazo me da la solucion.

Tengo estos dos arrays declarados:

Código:
$arrayProvincias = array ("alava"  ,"laCoruna"  ,"albacete"  ,"alicante"  ,"almeria"  ,"asturias"  ,"avila"  ,"badajoz"  ,"barcelona"  ,"burgos"  ,"caceres"  ,"cadiz"  ,"cantabria"  ,"castellon"  ,"ceuta"  ,"ciudadReal"  ,"cordoba " ,"cuenca"  ,"gerona"  ,"granada"  ,"guadalajara"  ,"guipuzcoa"  ,"huesca"  ,"huelva"  ,"baleares"  ,"jaen"  ,"laRioja"  ,"lasPalmas"  ,"leon"  ,"lerida"  ,"lugo"  ,"madrid"  ,"malaga"  ,"melilla"  ,"murcia" ,"navarra"  ,"orense"  ,"palencia"  ,"pontevedra"  ,"salamanca"  ,"segovia"  ,"sevilla"  ,"soria"  ,"tarragona"  ,"tenerife"  ,"teruel"  ,"toledo"  ,"valencia"  ,"valladolid" ,"vizcaya"  ,"zamora"  ,"zaragoza");

 $arrayTipos = array (" a "  ," b "  ," c "  ," d "  ," f "  ," g "  ," h "  ," i " ," j "  ," k "  ," l "  ," m "  ," n "  ," o "  ," p "  ," q "  ," r " );
y despues los uso asi

Código:
$sql ="select empresa, mail from filtroClientes where ";

for ($i=0;$i<= 51;$i++){
	if ($datos[$i]=='on'){
			$sql.= $arrayProvincias[$i];
			$sql .= " = 'on' and (";
		}
	}
	
for ($i=52;$i<= 68;$i++){
	if ($datos[$i]=='on'){
		if ($flag==1){
			$sql .= " or ";
		}
			$sql .= $arrayTipos[$i];
			$sql .= " = 'on' ";
			$flag = 1;
		}
	}
$sql .= ") ";
Para constriur una sentencia sql dinamica.

El caso es que cuando imprimo la sentencia para ver que ****** pasa.. el primer for lo hace bien y muestra por ejemplo barcelona = 'on' pero en el segundo que debe reconocer los tipos solo muestra = 'on' cuando deberia mostrar por ejemplo a = 'on';

Esta es una de las salidas que da:

Código:
select empresa, mail from filtroClientes where guadalajara = 'on' and ( = 'on' )
Un saludo y espero que me puedan ayudar!!
  #2 (permalink)  
Antiguo 13/12/2012, 06:56
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Raro raro raro

Cuando accedes al array "$arrayTipos" lo haces con índice>51:

Código PHP:
$sql .= $arrayTipos[$i]; 
Si miramos la declaración de "$arrayTipos" vemos que solo hay 17 elementos:

Código PHP:
$arrayTipos = array (" a "  ," b "  ," c "  ," d "  ," f "  ," g "  ," h "  ," i " ," j "  ," k "  ," l "  ," m "  ," n "  ," o "  ," p "  ," q "  ," r " ); 

Por ese motivo te falla.
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 13/12/2012, 07:47
 
Fecha de Ingreso: diciembre-2012
Mensajes: 75
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: Raro raro raro

Muchas gracias, si que era eso.. fallo tonto pero que como no te lo digan...

Etiquetas: raro, sql
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:34.