Foros del Web » Programando para Internet » PHP »

problema contando elementos en bd .(con un array)

Estas en el tema de problema contando elementos en bd .(con un array) en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 22/12/2005, 04:41
 
Fecha de Ingreso: noviembre-2005
Mensajes: 139
Antigüedad: 19 años
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
  #2 (permalink)  
Antiguo 22/12/2005, 06:04
 
Fecha de Ingreso: noviembre-2005
Mensajes: 139
Antigüedad: 19 años
Puntos: 0
ya funciona... he modificado el codigo de arriba para que quede bien.
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:23.