Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/08/2012, 10:47
lex_returns
 
Fecha de Ingreso: agosto-2012
Mensajes: 2
Antigüedad: 11 años, 8 meses
Puntos: 1
Exclamación Problema al tratar textarea con explode() para luego sumar

Hola a todos,
Es la primera vez que escribo en el foro! Necesito vuestra ayuda, a ver como lo veis.

Lo que necesito hacer es que un usuario me ponga un texto en un textarea con el siguiente formato:

Pedro Gómez + 8
Juan Pérez + 9
...

Una vez hacen submit del formulario, trato los datos por tal de sacar la información que necesito, que por una parte es el número de grupos que van a venir (es decir, el número de lineas) que con eso no ha habido problema y posteriormente quiero conseguir el número total de invitados que van a venir.
Aquí tenéis mi código:

Código PHP:
//Cojo contenido de textarea después de hacer el submit
$lista=$_POST['invitados'];

//Cuento el numero de lineas para saber los grupos que van a asistir
$numLineas=count(explode("\n",$lista));

//Empiezo a contar los invitados totales dependiendo si hay solo una linea o varias
if($numLineas==1){
            
$var=explode("+",$lista); //Si solo hay una linea divido la cadena mediante el '+'
            
$total=1+$var[1]; //Este 1 simboliza a el nombre de la persona al que le sumo el numero de invitados que trae esa persona $var[1]
}
else { 
//Si hay mas lineas
       
$linea=explode("\n",$lista); //Creo una array con una linea en cada posicion
    
for($i==0;$i<=$numLineas-1;$i++){ //creo un bucle por todas las lineas
        
$separa=explode("+",$linea[$i]);
        
$suma+=1+$separa[1]; //Guardo en suma el total que me va dando de cada linea y el computo total de invitados
    
}

Pues bien, aparentemente yo no veo nada mal en el código y me lo cuenta mal...
Poniendo alerts por dentro del bucle me he dado cuenta que la primera linea la ignora, sólo computa un 1, es decir si es:

Alex López + 5
Juan Fuentes + 20

El resultado es 22 cuando tendría que ser 27.
Obvia la primera linea y solo computa un uno, no se porque... Es como si el explode() ignorase esa linea dividir...

A ver si alguien me puede ayudar!!

Agradezco mucho vuestra atención!


Un saludo,

Lex.