Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/12/2005, 04:41
apuenco
 
Fecha de Ingreso: noviembre-2005
Mensajes: 139
Antigüedad: 18 años, 5 meses
Puntos: 0
problema contando elementos en bd .(con un array)

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($temp0);
fwrite($temp,$linea);
fseek($temp0);
$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

Última edición por apuenco; 22/12/2005 a las 06:00