Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/06/2012, 11:58
Avatar de sebastianxjavier
sebastianxjavier
 
Fecha de Ingreso: agosto-2011
Mensajes: 23
Antigüedad: 13 años, 2 meses
Puntos: 0
PHP + POO diferenciar objetos instanciados

Estimados, junto con saludar, les cuento que estoy programando un sitio en php con poo.... Mi duda salta a la vista al realizar una query a la bd y la recorro para asi crear objetos dinamicamente con sus respectivos datos... pero luego al momento de mostrarlos, como los diferencio???

La idea es que los objetos se muestren de la forma:



Aplicando programación estructurada el código es así (Funciona Obviamente):

Código PHP:
<?php
//el metodo "listarFactura" hace la query y la retorna en la variable $documentox
$documentox $vendedor->listarFactura($nombre_cliente);
?>
//Se imprimen los registros resultantes
<table border="1" width="100%">
   <tr align="center">
    <td>N° Factura</td>
    <td>Cliente</td>
      <td>Fecha Emisión</td>
    <td>Fecha Vencimiento</td>
    <td>Monto Total</td>
    <td>Estado</td>
   </tr>
   <?php
   
while ($registro mysql_fetch_assoc($documentox))
   {
   
?>
   <tr align="center">
    <td><?php echo $registro['id_documento_pago']?></td>
    <td><?php echo $registro['cliente_id_cliente']?></td>
    <td><?php echo $registro['fecha_emision_documento_pago']?></td>
      <td><?php echo $registro['fecha_vencimiento_documento_pago']?></td>
    <td><?php echo $registro['total_documento_pago']?></td>
    <td><?php echo $registro['estado_documento_pago']?></td>
   </tr>
   <?php
   
}
   
?>
  </table>
Pero al llevarlo a objeto cambia a esto:

Código PHP:
<?php
//el metodo "listarFactura" hace la query y la retorna en la variable $documentox
$documentox $vendedor->listarFactura($nombre_cliente);
?>

/*
*se recorre la variable y se crea el objeto (solo funciona para un objeto)
*/
while ($registro = mysql_fetch_assoc($documentox))
{
     $documento = new Documento_Pago();
     $documento->setIdDocumentoPago($registro['id_documento_pago']);
     $documento->setFechaEmisionDocumentoPago($registro['fecha_emision_documento_pago']);
     $documento->setFechaVencimientoDocumentoPago($registro['fecha_vencimiento_documento_pago']);
     $documento->setTotalDocumentoPago($registro['total_documento_pago']);
     $documento->setEstadoDocumentoPago($registro['estado_documento_pago']);
}

/*
*Funciona solo para un objeto
*/
<table border="1" width="100%">
   <tr align="center">
    <td>N° Factura</td>
    <td>Cliente</td>
      <td>Fecha Emisión</td>
    <td>Fecha Vencimiento</td>
    <td>Monto Total</td>
    <td>Estado</td>
   </tr>
   <?php
   
while ($registro mysql_fetch_assoc($documentox))
   {
   
?>
   <tr align="center">
    <td><?php echo $documento->getIdDocumentoPago()?></td>
    <td><!--No se incluye en este objeto este dato--></td>
    <td><?php echo $documento->getFechaEmisionDocumentoPago()?></td>
      <td><?php echo $documento->getFechaVencimientoDocumentoPago()?></td>
    <td><?php echo$documento->getTotalDocumentoPago()?></td>
    <td><?php echo $documento->getEstadoDocumentoPago()?></td>
   </tr>
   <?php
   
}
   
?>
Ahora mis dudas... como lo hago para poder instancias dinamicas de objetos? poniendo un contador antes del while que crea y le hace set al objeto? hay una forma mas elegante???? pero lo mas importante si tengo ya creado 2 objetos de la misma clase... como los puedo diferenciar para trabajar con ellos? salu2!