Foros del Web » Programando para Internet » PHP »

Aplicando DAO a php

Estas en el tema de Aplicando DAO a php en el foro de PHP en Foros del Web. Hola a todos, me gustaría si estoy aplicando correctamente este patron en PHP ya que lo uso en java frecuentemente. Interface DAO Código: <?php interface ...
  #1 (permalink)  
Antiguo 28/05/2016, 05:28
Usuario no validado
 
Fecha de Ingreso: abril-2012
Mensajes: 134
Antigüedad: 12 años
Puntos: 0
Aplicando DAO a php

Hola a todos, me gustaría si estoy aplicando correctamente este patron en PHP ya que lo uso en java frecuentemente.

Interface DAO
Código:
<?php

interface NoticeDAO {

    public function showAllNotice();
    
}
Implementacion del DAO

Código:
<?php

require_once "./sql/DBConnection.php";
require_once "./dao/NoticeDAO.php";
require_once "./dto/Notice.php";

class NoticeDAOImplement extends DBConnection implements NoticeDAO {

    public function showAllNotice() {
        # se realiza la consulta a la base de datos
        $mysqli = $this->connect();
        $result = $mysqli->query("SELECT * FROM notice");
        $notice = new Notice();
        while ($row = $result->fetch_assoc()) {
            echo $notice->setNoticeId($row['notice_id']);
            $notice->setNoticeId($row['notice_title']);
            $notice->setNoticeId($row['notice_datetime']);
            $notice->setNoticeId($row['notice_content']);
        }
        
        return $notice;
    }

}
EL uso

Código:
<?php
include_once './impl/NoticeDAOImplement.php';

$noticeDao = new NoticeDAOImplement();
$notice = $noticeDao->showAllNotice();

echo "<br><br>=========>".$notice->getNoticeTitle();

?>
La pregunta es porque no me esta devolviendo ningún valor
  #2 (permalink)  
Antiguo 28/05/2016, 07:47
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Aplicando DAO a php

Cita:
La pregunta es porque no me esta devolviendo ningún valor
En tu método showAllNotice() haces una consulta que podría sacar más de un registro, pero jamás acumulas nada en un array, sólo creas una Notice() y sobreescribes sus valores con el while() varias veces, usando el mismo método setNoticeId() con valores diferentes (lo cual parece absurdo), etc.

¿El echo que tienes dentro de ese método tampoco se imprime?

Porque si eso tampoco pasa entonces el while() tampoco se está ejecutando como esperas.

Deberías de ponerte a depurar un poco más tu código, no sabemos exactamente lo que debería suceder, y si tampoco sabes lo que haces es más complicado adivinar el problema.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 28/05/2016, 10:38
Usuario no validado
 
Fecha de Ingreso: abril-2012
Mensajes: 134
Antigüedad: 12 años
Puntos: 0
Respuesta: Aplicando DAO a php

Ha sido cagada mia, en realidad lo que queria era recuperar todos los datos, pero el copy and paste me ha jugado mala pasada.

En realidad es así:

Código:
public function showAllNotice() {
        # se realiza la consulta a la base de datos
        $mysqli = $this->connect();
        $result = $mysqli->query("SELECT * FROM notice");
        $notice = new Notice();
        while ($row = $result->fetch_assoc()) {
            $notice->setNoticeId($row['notice_id']);
            $notice->setNoticeTitle($row['notice_title']);
            $notice->setNoticeDate($row['notice_datetime']);
            $notice->setNoticeContent($row['notice_content']);
        }
        
        return $notice;
    }
Ya que recuperaba es el titulo, pero no lo obtenía por ninguna parte!!!! ahora funciona ok.

Muchas gracias !!!
  #4 (permalink)  
Antiguo 28/05/2016, 10:48
Usuario no validado
 
Fecha de Ingreso: abril-2012
Mensajes: 134
Antigüedad: 12 años
Puntos: 0
Respuesta: Aplicando DAO a php

Con respecto a lo de una sola noticia, lo que suelo usar en java es una lista para almacenar los objetos (list<Notice>), aquí no se muy bien como hacerlo. ¿Cual seria la mejor alternativa a la lista?
  #5 (permalink)  
Antiguo 28/05/2016, 11:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Aplicando DAO a php

En PHP tienes arrays:
Código PHP:
Ver original
  1. $lista = [];
  2.  
  3. while (/* ... */) {
  4.   $noticia = new Noticia();
  5.  
  6.   // ...
  7.  
  8.   $lista []= $noticia;
  9. }
  10.  
  11. return $lista;

Consulta el manual: http://www.php.net/manual/es/language.types.array.php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 28/05/2016, 11:20
Usuario no validado
 
Fecha de Ingreso: abril-2012
Mensajes: 134
Antigüedad: 12 años
Puntos: 0
Respuesta: Aplicando DAO a php

Algo así podría ser??

Código:
public function showAllNotice() {

        $mysqli = $this->connect();
        $result = $mysqli->query("SELECT * FROM notice");
        $arrayNotice = [];
        while ($row = $result->fetch_assoc()) {

            $notice = new Notice();
            $notice->setNoticeId($row['notice_id']);
            $notice->setNoticeTitle($row['notice_title']);
            $notice->setNoticeDate($row['notice_datetime']);
            $notice->setNoticeContent($row['notice_content']);
            $arrayNotice[] = $notice;
        }

        return $arrayNotice;
    }
Y ya solo quedaria recorrer el array de objetos y recuperar los valores con los get, ¿no?
  #7 (permalink)  
Antiguo 28/05/2016, 18:43
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Aplicando DAO a php

Mi estimado no es necesario que hagas un pregunta para saber si esta bien el código. Para eso existen las pruebas de unidad, te recomiendo que uses PHPUnit y crees tus casos y compruebes por ti mismo si es correcto lo que estas haciendo.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #8 (permalink)  
Antiguo 29/05/2016, 15:41
Usuario no validado
 
Fecha de Ingreso: abril-2012
Mensajes: 134
Antigüedad: 12 años
Puntos: 0
Respuesta: Aplicando DAO a php

Cita:
Iniciado por hhs Ver Mensaje
Mi estimado no es necesario que hagas un pregunta para saber si esta bien el código. Para eso existen las pruebas de unidad, te recomiendo que uses [URL="https://phpunit.de/"]PHPUnit[/URL] y crees tus casos y compruebes por ti mismo si es correcto lo que estas haciendo.
Muchas gracias, lo tendré en cuenta la próxima vez.

Etiquetas: dao, mysql, select, sql
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 02:59.