Foros del Web » Programando para Internet » PHP »

Mi primer Class[ Calcular deuda Socio ]

Estas en el tema de Mi primer Class[ Calcular deuda Socio ] en el foro de PHP en Foros del Web. Hola chicos, estoy tratando de armar mi primer class me guie un poco por este Post . A la clase la llamo de la siguiente ...
  #1 (permalink)  
Antiguo 26/10/2011, 14:21
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 8 años, 10 meses
Puntos: 89
Mi primer Class[ Calcular deuda Socio ]

Hola chicos, estoy tratando de armar mi primer class me guie un poco por este Post.

A la clase la llamo de la siguiente manera:

Código PHP:
require('../require/deuda_socio.php');
    
$deuda    =    new DedudaSocio;
    
$deuda2    =    $deuda    ->    DeudaActual("$codigo","$periodo");
    echo 
$deuda2
Basicamente estoy vienda la deuda del socio, pero despues voy a querer ir agregando otras funciones y creo voy a necesitar una class para esto, ya que utilizo el mismo codigo en mas de 10 hojas.

ak el codigo de la funcion.

deuda_socio.php
Código PHP:
class DedudaSocio{
    
    var 
$socio;
    var 
$periodo;

    function 
DeudaActual($socio,$periodo);
    {
        
// Ordeno formato del periodo.
        
$periodo    =    substr($periodo,-4).substr($periodo,0,2);
        
$DeudaPeridoActual        =    0;
        
// Query.
        
$SQL    =    "SELECT importe_c  FROM `descuentos` WHERE `socio` = '$codigo' AND `periodo` = '$periodo'";
        
$QUERY    =    mysql_query(    $SQL    )    or die(mysql_error());
        
// Inicio Bucle
        
while(    $dato    =    mysql_fetch_assoc(    $QUERY    ))
        {
            
$DeudaPeridoActual     += $dato['importe_c'];
        }
        
// Devuelvo resultado
        
return $DeudaPeridoActual;
    }
    
    function 
DeudaProx$socio,$periodo );
    {
        
// Ordeno formato del periodo.
        
$periodo    =    substr($periodo,-4).substr($periodo,0,2).'01';
        
$periodo    =    date('Ym',strtotime("$periodo_y +1 month"));
        
$DeudaPeridoProx    =    0;
        
// Query.
        
$SQL    =    "SELECT importe_c  FROM `descuentos` WHERE `socio` = '$codigo' AND `periodo` = '$periodo'";
        
$QUERY    =    mysql_query(    $SQL    )    or die(mysql_error());
        
// Inicio Bucle
        
while(    $dato    =    mysql_fetch_assoc(    $QUERY    ))
        {
            
$DeudaPeridoProx    += $dato['importe_c'];
        }
        
// Devuelvo resultado
        
return $DeudaPeridoProx;
    }    

Por lo que escribi el post por lo siguiente:

Vi que todos usan esto

Código PHP:
 $variable $this -> variable
 
return $this-> variable 
¿Yo lo necesito, cual es la utilidad?

y me gustaria hacer esto

Código PHP:
require('../require/deuda_socio.php');
    
$deuda    =    new DedudaSocio("$codigo","$periodo");
    
$deuda2    =    $deuda    ->    DeudaActual();
    
$deuda3    =    $deuda    ->    DeudaProx(); 
¿Como lo haria?

Gracias chicos.
__________________
Mono programando!
google.com/+MarianoEgui
twitter.com/eguimariano

Última edición por SirDuque; 26/10/2011 a las 14:21 Razón: Titulo
  #2 (permalink)  
Antiguo 26/10/2011, 14:32
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 7 años, 2 meses
Puntos: 511
Respuesta: Mi primer Class[ Calcular deuda Socio ]

Hola que tal.

En base a la programación OOP de php se nota que no la dominas ,
en primer lugar tienes este grave error.

Código PHP:
Ver original
  1. function DeudaActual($socio,$periodo);
  2.     {

porque colocas ; antes de {

lo que te recomiendo es que leas esto http://php.net/manual/es/language.oop5.php
para que comprendas un poco más el tema.

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #3 (permalink)  
Antiguo 26/10/2011, 14:33
Avatar de Th3_Night  
Fecha de Ingreso: junio-2011
Ubicación: Montevideo
Mensajes: 8
Antigüedad: 6 años, 5 meses
Puntos: 1
Respuesta: Mi primer Class[ Calcular deuda Socio ]

Supongo que lo que tendrías que usar es un constructor ("__construct()").
Fijate en google como es, aunque no me aguanto y te doy un pequeño tuto
El contructor en PHP sirve para pasar información cuando se crea un objeto de una clase por ejemplo, para hacer $deuda = new DedudaSocio("$codigo", "$periodo"); debes agregar esto a tu clase DedudaSocio (deuda*)
public function __construct($codigo, $periodo)
{
// some stuff here
}
Busca info de los métodos mágicos de las clases porque te servirán muchísimo.
Tambien te recomiendo que tengas cuidado con los espacios que usas (e.g $deduda -> DeudaActual()) porque aunque funcione, el código queda feo y dificil de "tocar"

Edito: @Skiper0125 cuando envié el mensaje me pregunte porque mi nick aparecia como skiper jajaj

Edito2: Es verdad lo que dice skiper, me he fijado que usas ";" luego de cerrar los paréntesis de las funciones o.o
  #4 (permalink)  
Antiguo 26/10/2011, 14:49
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 8 años, 10 meses
Puntos: 89
Respuesta: Mi primer Class[ Calcular deuda Socio ]

Gracias por notar el ";" mientras editaba el post, al mismo tiempo editaba al archivo, y se filtro ese ";"...

Ya estoy Googleando PHP class constructor.


EDIT
---------------------------------------------

En este link encontre como armar constructor, y un ejemplo para hacer lo que quiero, muy basico y bien explicado.
__________________
Mono programando!
google.com/+MarianoEgui
twitter.com/eguimariano

Última edición por SirDuque; 26/10/2011 a las 14:51 Razón: Encontre lo que buscaba..

Etiquetas: class, fatal, method, mysql, primer, sql, variables
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 22:58.