Foros del Web » Programando para Internet » PHP »

contar filas con php

Estas en el tema de contar filas con php en el foro de PHP en Foros del Web. buenas tardes, Tengo el siguiente código con el cual estoy leyendo un archivo de Excel, resulta que tengo que hacer un conteo de cuantas filas ...
  #1 (permalink)  
Antiguo 17/08/2010, 11:35
 
Fecha de Ingreso: julio-2010
Mensajes: 91
Antigüedad: 14 años, 3 meses
Puntos: 1
contar filas con php

buenas tardes,

Tengo el siguiente código con el cual estoy leyendo un archivo de Excel, resulta que tengo que hacer un conteo de cuantas filas presentan alguna inconsistencias o alguno de los errores que están definidos como campos vacios, fechas invalidas, estructuras no validas, y también un conteo de cuantas filas están perfectas con todas las condiciones ok.

El codigo es el siguiente


Código PHP:
<?php
include_once ("../ExcelReader/Excel/reader.php");
include (
"conexion.php");
date_default_timezone_set("America/Bogota");
$fechacargue date("Y-m-d H:i:s"); 
$type explode'.'$_FILES['arcRem']['name'] );
if( 
$type[1] != 'xls' )
{
    echo 
'<script> alert("Por favor seleccione un Archivo Excel 2003");document.location.href="cargue_inventarioBBVA.php";</script>';
    exit;
}
$nombre $_FILES['arcRem']['tmp_name'];
$datos = new Spreadsheet_Excel_Reader();
$datos->read($nombre);
$arreglo $datos->sheets[0]['cells'];

foreach( 
$arreglo as $var=>$new)
{
    
$campos $arreglo[$var];

    for( 
$i 1$i 41$i++ )    
    {
        echo 
$campos[$i].'<br>';
        if( 
$i == 40 ) echo '<hr>';
    
    }

        if (
$campos[2]==""
        {
            echo 
"NUMERO DE CAJA VACIO ";
            echo 
"-";
        }    
                
        if (
$campos[3]==""
        {
            echo 
"TIPO DOCUMENTAL VACIO ";
            echo 
"-";
        }
        
        if (
$campos[5]==""
        {
            echo 
"NOMBRE UNIDAD VACIO ";
            echo 
"-";
        }
        
        if (
$campos[6]==""
        {
            echo 
"OFICINA VACIO ";
            echo 
"-";
        }
        
        if (
$campos[7]==""
        {
            echo 
"EMPRESA VACIO ";
            echo 
"-";
        }
        
        if (
$campos[38]==""
        {
            echo 
"CODIGO UNIDAD VACIO ";
            echo 
"-";
        }
    
        
//ESTRUCTURAS
        
$exprCA="/^02630001005[0-9]{8}$/";
        
$exprUD="/^02630[0-9]{8}$/";

        if (
$campos[2]!=""
        {
            if( !
preg_match ($exprCA$campos[2])) 
            {
              echo 
"<br>Estructura NUMERO DE CAJA no valida";
                              
            } 
        }
        
        if (
$campos[38]!=""
        {
            if( !
preg_match ($exprUD$campos[38])) 
            {
              echo 
"<br>Estructura UNIDAD DOCUMENTAL no valida";
              
                
            } 
        }
        
        
//CONSULTAR OTRAS TABLAS        

        
if ($campos[6]!=""
        {
            
$cnsOf "select * from oficina WHERE idoficina = '$campos[6]' ";
            
$rst=mysql_query($cnsOf,$link);
            
$num_filas mysql_num_rows($rst);
            
            if(
$num_filas!=0)
            {
                
//echo "<br>Oficina $campos[6] si existe";
            
}
        }
        
        if (
$campos[7]!=""
        {
            
$cnsEmp "select * from empresa WHERE nombre = '$campos[7]' ";
            
$rst1=mysql_query($cnsEmp,$link);
            
$num_filas1 mysql_num_rows($rst1);
            
            if(
$num_filas1!=0)
            {
                
//echo "<br>Empresa $campos[7] si existe";
            
}
        }
        
        if (
$campos[3]!=""
        {
            
$cnsTip "select * from tipologia WHERE nombre = '$campos[3]' ";
            
$rst2=mysql_query($cnsTip,$link);
            
$num_filas2 mysql_num_rows($rst2);
            
            if(
$num_filas2!=0)
            {
                
//echo "<br>Tipologia $campos[3] si existe";
            
}
        }
        
            if ((
$campos[3]=="Analisis de Riesgo")|| ($campos[3]=="Análisis de Riesgo"))
            {
                
$tipo="Aná¡lisis de Riesgo";
                
$cambio $campos[3];
                
//echo "<br>";
                //echo "Tipolo: $cambio";
                
$cambio $tipo
                
//echo "--Cambio  $cambio";
            
}
        
        if (
$campos[16]!=""
        {
            
$cnsNov "select * from novedad WHERE nombre = '$campos[16]' ";
            
$rst3=mysql_query($cnsNov,$link);
            
$num_filas3 mysql_num_rows($rst3);
            
            if(
$num_filas3!=0)
            {
                
//echo "<br>Novedad $campos[16] si existe es:";
            
}
                while(
$rows1=mysql_fetch_array($rst3))
                {
                    
$idnovedad=$rows1['idnovedad'];
                    
//echo $idnovedad;
                
}
        }
        
            else
            {
                
$novcero="-1";
                
$nuevo $campos[16];
                
//echo "<br>";
                //echo "Vacio Nove: $nuevo";
                
$nuevo $novcero
                
//echo "--Ahora Nove $nuevo";
            
}
        
        
//validar fechas
        
$sep "[\/]";
        
$req "#^(((0?[1-9]|1\d|2[0-8]){$sep}(0?[1-9]|1[012])|(29|30){$sep}(0?[13456789]|1[012])|31{$sep}(0?[13578]|1[02])){$sep}(19|[2-9]\d)\d{2}|29{$sep}0?2{$sep}((19|[2-9]\d)(0[48]|[2468][048]|[13579][26])|(([2468][048]|[3579][26])00)))$#";
        
        if (
$campos[8]!=""
        {
            
//echo "<br>Fecha_ini $campos[8]";
            
$fechaini str_replace("/","-",$campos[8]);
            
            if( !
preg_match ($req$campos[8])) 
            {
              echo 
"<br>FechaIn no valida";                
            } 
            else
            {
            
//echo "<br> Fecha_Ini Valida: $fechaini";
            
}
        }
        
        if (
$campos[9]!=""
        {
            
//echo "<br>Fecha_Fin $campos[9]";
            
$fechafin str_replace("/","-",$campos[9]);
            
            if( !
preg_match ($req$campos[9])) 
            {
              echo 
"<br>FechaFin no valida";                
            } 
            else
            {
            
//echo "<br> Fecha_Fin Valida: $fechafin";
            
}
        }    
        
        if (
$campos[15]!=""
        {
            
//echo "<br>Fecha_Fin $campos[9]";
            
$fecharecol str_replace("/","-",$campos[15]);
            
            if( !
preg_match ($req$campos[15])) 
            {
              echo 
"<br>FechaRec no valida";                
            } 
            else
            {
            
//echo "<br> Fecha_Recol Valida: $fecharecol";
            
}
        }        
        
        if (
$campos[19]!=""
        {
            
//echo "<br>Fecha_Fin $campos[9]";
            
$fechaenv str_replace("/","-",$campos[19]);
            
            if( !
preg_match ($req$campos[19])) 
            {
              echo 
"<br>FechaEnv no valida";                
            } 
            else
            {
            
//echo "<br> Fecha_Env Valida: $fechaenv";
            
}
        }        
        echo 
"<br>";
        echo 
'<hr>';
    
}    
//exit;
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
  <title>Resultados Cargue Inventario</title>
  
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css">
<!--
a:link {
    color: #000033;
    text-decoration: none;
}
a:visited {
    text-decoration: none;
    color: #000033;
}
a:hover {
    text-decoration: none;
    color: #000033;
}
a:active {
    text-decoration: none;
    color: #000033;
}
a {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-weight: bold;
    font-size: 12px;
}
-->
</style></head>

<body>
<form name="form1" method="post" action="carguebbva.php">
  <p>
    <?php 

$filas 
$datos->sheets[0]['numRows'];
//quitar encabezados
$totalregistros $filas 1;

echo 
"<table width='327' border='0' align='center'>";
echo 
"<tr>";
echo 
"<td><img src='img/Logo_MTI.JPG' width='280' height='57'/></td>";
echo 
"<td><img src='img/logo.JPG' width='168' height='60' /></td>";
echo 
"</tr>";
echo 
"</table>";
echo 
"<br><br><br><br>";

echo 
"<table width='513' border='1' align='center' cellspacing='0' bordercolor='#DAEFA3'>";
echo 
"<tr>";
echo 
"<td width='200' bgcolor='#F8FCED'><strong>Total Registros: $totalregistros</strong></td>";
echo 
"<td width='156' bgcolor='#F8FCED'><strong>Lineas con error: </strong></td>";
echo 
"<td width='143' bgcolor='#F8FCED'><strong>Lineas Correctas: </strong></td>";
echo 
"</tr>";
//exit;
echo "<tr>";

echo 
"<td>";

echo 
"</td>";

echo  
"<td align='center'><a href='errores.php'><br>Ver Errores <br><br></a></td>";

echo 
"<td>";
echo 
"</td>";

echo 
"</tr>";
echo 
"</table>";


echo 
"<table width='268' border='0' align='center'>";
echo 
"<tr>";
echo 
"<br>";
echo 
"<td width='89'><div align='center'>";
echo 
"<input type='submit' name='Cargar' value='Subir Archivo'>";
echo 
"</div></td>";
echo 
"<td width='67'><div align='center'>"?>
<input type="button" name="button" id="button" value="Cancelar" onclick="document.form1.action='cargue_inventarioBBVA.php';{form1.submit();}"/>
<?php echo "</div></td>";
echo 
"</tr>";
echo 
"</table>";

////////////////
function validarFecha($fecha){
$sep "[\-]";
$req "#^(((0?[1-9]|1\d|2[0-8]){$sep}(0?[1-9]|1[012])|(29|30){$sep}(0?[13456789]|1[012])|31{$sep}(0?[13578]|1[02])){$sep}(19|[2-9]\d)\d{2}|29{$sep}0?2{$sep}((19|[2-9]\d)(0[48]|[2468][048]|[13579][26])|(([2468][048]|[3579][26])00)))$#";
   
   if( 
preg_match($req$fecha)) return true;
   else return 
false;
}
?>
  </p>
</form>
</body>
</html>

Gracias por la colaboracion
  #2 (permalink)  
Antiguo 17/08/2010, 13:06
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: contar filas con php

Hola no estoy muy seguro , pero me parece que estas usando palabras reservadas de php , que no se pueden usar como variables, pues solo las debe usar php internemente,

por ej , estas usando estas:

$var
$new

y creo que hay mas , revisá el codigo.

Si no estoy en lo correcto por favor corriganmé

edito:

Te dejo un link pa que veas

http://www.php-es.com/reserved.html
__________________
la la la
  #3 (permalink)  
Antiguo 17/08/2010, 15:33
 
Fecha de Ingreso: julio-2010
Mensajes: 91
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: contar filas con php

bueno gracias pero pues eso no es tan importante ya lo cambie, igual sigo necesitando el conteo de filas,
  #4 (permalink)  
Antiguo 17/08/2010, 15:45
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 18 años, 1 mes
Puntos: 74
Respuesta: contar filas con php

¿No te vale utilizar count() para contar?

Saludos,
  #5 (permalink)  
Antiguo 18/08/2010, 07:57
 
Fecha de Ingreso: julio-2010
Mensajes: 91
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: contar filas con php

puede ser lo que pasa es que no se como meterlo en mi codigo como incluirlo, si alguien me puede orientar agradezco
  #6 (permalink)  
Antiguo 18/08/2010, 11:52
Avatar de silvanha  
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 8 meses
Puntos: 65
Respuesta: contar filas con php

pero por lo que veo el conteo lo estableces tú, es decir, conforme vas realizando acciones, vas viendo cuales tienen inconsistencias y tal, o no es así???

si estoy entendiendo bien, entonces solo se trata de utilizar una variable que se vaya incrementando conforme encuentras algún error o inconsistencia...

Código PHP:
Ver original
  1. $i = 0; //Defines antes de todo tu variable

y por ejemplo en el último if ( son un monton xD)
Código PHP:
Ver original
  1. if ($campos[19]!="")  
  2.         {
  3.             //echo "<br>Fecha_Fin $campos[9]";
  4.             $fechaenv = str_replace("/","-",$campos[19]);
  5.              
  6.             if( !preg_match ($req, $campos[19]))  
  7.             {
  8.               echo "<br>FechaEnv no valida";  
  9.               $i++;              
  10.             }  
  11.             else
  12.             {
  13.             //echo "<br> Fecha_Env Valida: $fechaenv";
  14.             }
  15.         }

al salir de todas tus validaciones $i, tendrá el conteo de lo que necesitas..

espero haber entendido bien
__________________
●•· No hay nada imposible..
●•· Vico-X.. ;)
  #7 (permalink)  
Antiguo 20/08/2010, 07:17
 
Fecha de Ingreso: julio-2010
Mensajes: 91
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: contar filas con php

si oye muchas gracias por tu respuesta lo que hice fue poner esa variable q dices para contar en cada uno de los errores y listo al final ya tenia cuantos errores encontro y asi poder sacarlo por filas

Etiquetas: contar, filas
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 13:12.