Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Frameworks y PHP orientado a objetos (http://www.forosdelweb.com/f68/)
-   -   no funciona mi clase (http://www.forosdelweb.com/f68/no-funciona-mi-clase-556968/)

nan_do9 14/02/2008 13:09

no funciona mi clase
 
que tal foro bueno tengo una clase c_roles con esta funciona

Código PHP:

function f_reporte_roles($ciudad,$mes)
    {
            
            
$o_con = new c_conexion;
            
            
//verificamos si se establecion la conexion 
            
if($o_con->f_conectar==true)
            {
                
//generamso la consulta
                
$sql "SELECT tem.emp_nombre,tem.emp_apellido,ti.ing_fecha,ti.ing_dias, ti.ing_remuneracion,ti.ing_he,ti.ing_hs,ti.ing_otros_ing,ti.ing_refrigerio,ti.ing_movilizacion, ti.ing_aporte_personal,ti.ing_total,te.egr_aporteiess,te.egr_anticipo_quincena,te.egr_prestamo, te.egr_total,tr.rol_total"
        
" FROM tbl_empleado tem,tbl_ingresos ti,tbl_egresos te, tbl_roles tr"
        
" WHERE tem.emp_ciudad = ' $ciudad '"
        
" AND tem.EMP_CEDULA = ti.EMP_CEDULA"
        
" AND tem.EMP_CEDULA = te.EMP_CEDULA"
        
" AND tr.ING_CODIGO = ti.ING_CODIGO"
        
" AND tr.EGR_CODIGO = te.EGR_CODIGO"
        
" AND MONTH( ti.ing_fecha ) = ' $mes '"
        
" AND MONTH( te.egr_fecha ) = ' $mes '";
        
              
//ejecutamos la consulta
              
$res=mysql_query($sql) or die(mysql_error());
              
              
              
$num=mysql_affected_rows() ;
              
              if(
$num>=1)
              {
                  
                return 
$res;
              }
              else
              {
                  return 
false;
              }
            
            }


    
    
    } 

y la llamo de esta manera

Código PHP:

<?
        
//incluimos el rachivo de la class
        
include("../class/c_roles.php");
                
        if(!isset(
$_POST["ciudad"]) && !isset($_POST["mes"]))
        {
        
            echo
"seleccione mes y ciudad";
            
        }
        else
        {            
            
$o_rep_rol = new c_roles;
            
            
$res_rep_rol $o_rep_rol->f_reporte_roles($ciudad,$mes);
            
            if(
$res_reporte_roles)
            {
                while(
$row=mysql_fetch_array($res_reporte_roles))
                {
                    
$nombre=$row["emp_nombre"];
                    
$apellido=$row["emp_apellido"];
                    
$total_ingresos=$row["ing_total"];
                    
                    echo 
$nombre;
                    echo 
"<br>";
                    echo 
$total_ingresos;
                
                
                }
            
            }
            else
            {
                echo 
"Error";//me imprime esto
                
            
}
        
        }

formulario
Código HTML:

<form name="form1" method="post" action="../php/res_rep_rol.php">
<select name="ciudad" id="ciudad">
              <option></option>
        <option value="Quito">Quito</option>
        <option value="Guayquil">Guayaquil</option>
        <option value="Huaquillas">Huaquillas</option>
        <option value="Tulcan">Tulcan</option>
        <option value="Cuenca">Cuenca</option>
      </select>
<select name="mes" id="mes">
              <option></option>
        <option value="01">Enero</option>
        <option value="02">Febrero</option>
        <option value="03">Marzo</option>
        <option value="04">Abril</option>
        <option value="05">Mayo</option>
        <option value="06">Junio</option>
        <option value="07">Julio</option>
        <option value="08">Agosto</option>
        <option value="09">Septiembre</option>
        <option value="10">Septiembre</option>
        <option value="11">Noviembre</option>
        <option value="12">Diciembre</option>
      </select>

me puede decir donde esta el error
Saludos..

GatorV 14/02/2008 13:13

Re: no funciona mi clase
 
Tu problema esta en que tu la variable que llamas al resultado de tu función es $res_rep_rol, y luego comparas la variable $res_reporte_roles, esas dos variables no son iguales y por eso siempre te imprime error.

Saludos.

nan_do9 14/02/2008 13:28

Re: no funciona mi clase
 
ya corregí en las dos partes y el error persiste:molesto:

Saludos..

GatorV 14/02/2008 13:31

Re: no funciona mi clase
 
En ese caso es probable que tu consulta no te este regresando ninguna fila y por eso te marca el error, verifica que tu consulta esta correcta y te regresa los datos que esperas corriéndola en tu gestor favorito de bases de datos.

Saludos.

nan_do9 14/02/2008 13:46

Re: no funciona mi clase
 
la prueba la realice y si me genera resultados en phpmyadmin :'(

Saludos...

GatorV 14/02/2008 13:51

Re: no funciona mi clase
 
Prueba cambiar esto:
Código PHP:

$num=mysql_affected_rows(); 

Por esto:
Código PHP:

$num=mysql_num_rows($res); 

Recuerda que Affected Rows es para consultas del tipo INSERT, UPDATE o DELETE.

Saludos.

nan_do9 15/02/2008 07:24

Re: no funciona mi clase
 
GatorV

Mire probe de esta manera y me funciona sin problemas
Código PHP:

include("../Connections/con_tci.php");
    
    
$ciudad=$_POST["ciudad"];
        
$mes=$_POST["mes"];
    
    
$sql 'SELECT tem.emp_nombre, tem.emp_apellido, ti.ing_fecha, ti.ing_dias, ti.ing_remuneracion, ti.ing_he, ti.ing_hs, ti.ing_otros_ing, ti.ing_refrigerio, ti.ing_movilizacion, ti.ing_aporte_personal, ti.ing_total, te.egr_aporteiess, te.egr_anticipo_quincena, te.egr_prestamo, te.egr_total, tr.rol_total'
        
' FROM tbl_empleado tem, tbl_ingresos ti, tbl_egresos te, tbl_roles tr'
        
' WHERE tem.emp_ciudad = "'.$ciudad.'"'
        
' AND tem.EMP_CEDULA = ti.EMP_CEDULA'
        
' AND tem.EMP_CEDULA = te.EMP_CEDULA'
        
' AND tr.ING_CODIGO = ti.ING_CODIGO'
        
' AND tr.EGR_CODIGO = te.EGR_CODIGO'
        
' AND MONTH( ti.ing_fecha ) ="'.$mes.'"'
        
' AND MONTH( te.egr_fecha ) ="'.$mes.'"';
                
//ejectutamos la consulta
                
$res=mysql_query($sql) or die(mysql_error());
                
//$num=mysql_affected_rows();
                
$num=mysql_num_rows($res) or die(mysql_error()); 
                
                
//verificamos si la consulta arojo resultados
                
if($num>=1)
                {
                    
$row=mysql_fetch_array($res) or die(mysql_error());
                    
$nombre=$row["emp_nombre"];
                    
$apellido=$row["emp_apellido"];
                    
$total_ingresos=$row["ing_total"];
                    
                    echo 
$nombre;
                    echo 
"<br>";
                    echo 
$total_ingresos;
                }
                else
                {
                    echo
"no hay nada";
                    
                } 

ahora el problema debe esta en la función o en la llamada pero no logro encontrar el error ya no se que hacer

Saludos...

GatorV 15/02/2008 09:07

Re: no funciona mi clase
 
Código PHP:

function f_reporte_roles($ciudad,$mes)
    {
            
            
$o_con = new c_conexion;
            
            
//verificamos si se establecion la conexion 
            
if($o_con->f_conectar==true)
            {
                
//generamso la consulta
                
$sql "SELECT tem.emp_nombre,tem.emp_apellido,ti.ing_fecha,ti.ing_dias, ti.ing_remuneracion,ti.ing_he,ti.ing_hs,ti.ing_otros_ing,ti.ing_refrigerio,ti.ing_movilizacion, ti.ing_aporte_personal,ti.ing_total,te.egr_aporteiess,te.egr_anticipo_quincena,te.egr_prestamo, te.egr_total,tr.rol_total"
        
" FROM tbl_empleado tem,tbl_ingresos ti,tbl_egresos te, tbl_roles tr"
        
" WHERE tem.emp_ciudad = ' $ciudad '"
        
" AND tem.EMP_CEDULA = ti.EMP_CEDULA"
        
" AND tem.EMP_CEDULA = te.EMP_CEDULA"
        
" AND tr.ING_CODIGO = ti.ING_CODIGO"
        
" AND tr.EGR_CODIGO = te.EGR_CODIGO"
        
" AND MONTH( ti.ing_fecha ) = ' $mes '"
        
" AND MONTH( te.egr_fecha ) = ' $mes '";
        
              
//ejecutamos la consulta
              
$res=mysql_query($sql) or die(mysql_error());
              
              
              
$num=mysql_num_rows($res) or die( mysql_error() );
              
              if(
$num>=1)
              {
                  
                return 
$res;
              }
              else
              {
                  return 
false;
              }
            
            }


    
    
    } 

Saludos.


La zona horaria es GMT -6. Ahora son las 23:41.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.