buenas tengo un script que mete en una base de datos cada linea de un archivo.txt separandola por comas.El caso es que aparte quiero contar cuantas lineas tienen en $causa(una parte de lalinea) un valor determinado , y para eso uso un array.El problema es que no se porque me cuenta mal....aqui os dejo el codigo:
Código PHP:
<?php
//funcion que coje una cadena y la divide en elementos de un array cada vez que aparece una coma
function rompelinea($string)
{
$array=explode (",",$string);
return $array;
}
function metodatos($array)
{
$host= "localhost";
$user="root";
$password="";
$nombreBD="proyecto";
$tabla="llamadas";
$link=mysql_connect($host, $user, $password);
mysql_select_db($nombreBD,$link);
$secuencia=$array[0];//directamente
$nllamado=numllam($array[1]);//se lo paso a funcion numllam
$duracion=$array[2];//directamente
$inillam=fecyhora($array[3]);//se lo paso a funcion fecyhora
$conllam=fecyhora($array[4]);//se lo paso a funcion fecyhora
$desllam=fecyhora($array[5]);//se lo paso a funcion fecyhora
$causa=causas($array[6]);////se lo paso a funcion causas
$iporigen=$array[7];
$ipdestino=$array[8];
$iptroncal=$array[9];
$tipollam=tipollamada($array[10]);
$tiponumllam=tiponumerollamada($array[11]);
$lineain=lineainout($array[12]);
$canalin=canalinout($array[13]);
$lineaout=lineainout($array[14]);
$canalout=canalinout($array[15]);
$switchtime=fecyhora($array[16]);
$switchdur=$array[17];
$eventos=$array[18];
$switchflag=flag($array[19]);
$busco = "SELECT * FROM $tabla WHERE n_desecuencia='$secuencia'";
$siono = mysql_query($busco,$link);
if (mysql_num_rows($siono)!=0){
}
else{
$query="INSERT into $tabla values ('','$secuencia','$nllamado','$duracion','$inillam','$conllam','$desllam','$causa','$iporigen','$ipdestino','$iptroncal','$tipollam','$tiponumllam','$lineain','$canalin','$lineaout','$canalout','$switchtime','$switchdur','$eventos','$switchflag')";
mysql_query($query,$link);
}
mysql_close($link);
}
function causas($num)
{
switch ($num){
case "16":
$llamada="Normal";
break;
case "17":
$lamada="Usuario Ocupado";
break;
case "18":
$llamada="Sin Respuesta";
break;
case "28":
$llamada="Numero Incorrecto";
break;
case "31":
$llamada="Sin Especificar";
break;
case "34":
$llamada="Linea/Canal No Disponible";
break;
default:$llamada="Otros";
}
return $llamada;
}
//en medio van las funciones para tratar los datos.funcionan biencomprobado)
$archivo=fopen("datos.txt","r");
$temp=fopen("editor.txt","r+");
$solu=array();
$solu[0]=0;
$solu[1]=0;
$solu[2]=0;
$solu[3]=0;
$solu[4]=0;
$solu[5]=0;
while (!feof($archivo))
{
$campos=array();//inicializo el array
$linea=fgets($archivo,2000);
fseek($temp, 0);
fwrite($temp,$linea);
fseek($temp, 0);
$info=fgets($temp,2000);
$campos=rompelinea($info);
switch ($campos[6]){
case "16":
$solu[0]=$solu[0]+1;
break;
case "17":
$solu[1]=$solu[1]+1;
break;
case "18":
$solu[2]=$solu[2]+1;
break;
case "28":
$solu[3]=$solu[3]+1;
break;
case "31":
$solu[4]=$solu[4]+1;
break;
case "34":
$solu[5]=$solu[5]+1;
break;
default:$solu[6]=$solu[6]+1;
}
$llamo=metodatos($campos);
}
print("$solu[0]");
print("$solu[1]");
print("$solu[2]");
print("$solu[3]");
print("$solu[4]");
print("$solu[5]");
fclose($temp);
fclose($archivo);
?>
gracias