Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Funcion para mostrar filas de una tabla

Estas en el tema de Funcion para mostrar filas de una tabla en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, tengo una clase y dentro una funcion que supuestamente tiene que mostrarme los registros de una tabla, pero no sale nada y no muestra ...
  #1 (permalink)  
Antiguo 03/02/2010, 09:00
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 21 años
Puntos: 8
Funcion para mostrar filas de una tabla

Hola, tengo una clase y dentro una funcion que supuestamente tiene que mostrarme los registros de una tabla, pero no sale nada y no muestra ningun error, la funcion es esta:
Código PHP:
public function MostrarNoticias() {
        
$str "SELECT * FROM noticias ORDER BY not_fecha DESC";
        
$rs $this->EjecutarQuery($str);
        
$nr $this->NumeroFilas($rs);
        
        
$res "<table>";
        
$res .= "<tr>";
        
$res .= "<th>C&oacute;digo</th>";
        
$res .= "<th>Fecha</th>";
        
$res .= "<th>Tema</th>";
        
$res .= "<th>Resumen</th>";
        
$res .= "<th>Activo</th>";
        
$res .= "</tr>";

        if (
$nr 0) {
            while (
$arr $this->RetornarFilas($rs)) {
                
$res .= "<tr>";
                
$res .= "<td>".$arr[0]."</td>";
                
$res .= "<td>".date("d/m/Y"strtotime($arr[1]))."</td>";
                
$res .= "<td>".$arr[2]."</td>";
                
$res .= "<td>".$arr[3]."</td>";
                
$res .= "<td>".$arr[6]."</td>";
                
$res .= "</tr>";
            }
        }
        else {
            
$res .= "<tr>";
            
$res .= "<td colspan='5'>No hay noticias publicadas.</td>";
            
$res .= "</tr>";
        }
        
        
        
$res .= "</table>";
        
        echo 
$res;
    } 
la consulta ya la probe, si devuelve resultados y las 2 lineas siguientes, ya las use anteriormente, en ralidad toda la funcion con otros datos y otra tabla ya la use y si mostraba los datos, pero ahora no se que pasa, quizas hay algun error de sintaxis que no haya visto. Espero que me puedas ayudar. Gracias.
__________________
El aprendiz.
  #2 (permalink)  
Antiguo 03/02/2010, 09:19
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Funcion para mostrar filas de una tabla

No veo algún error en la función. ¿Cómo la llamas? Ademas tienes otras funciones que no mencionas
Código PHP:
Ver original
  1. $rs = $this->EjecutarQuery($str);
  2.         $nr = $this->NumeroFilas($rs);
¿Qué información tienen esas funciones?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 03/02/2010, 09:27
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 21 años
Puntos: 8
Respuesta: Funcion para mostrar filas de una tabla

esas funciones son de las mas sencillas:
Código PHP:
private function EjecutarQuery($sql) {
    return 
mysql_query($sql);
}

private function 
NumeroFilas($rs) {
    return 
mysql_num_rows($rs);

y como en la funcion ya pongo un echo $res, lo llamo asi:
Código PHP:
$promed->MostrarNoticias(); 
__________________
El aprendiz.
  #4 (permalink)  
Antiguo 03/02/2010, 09:30
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Funcion para mostrar filas de una tabla

¿Podrías postear mejor toda la clase? Desde la parte que dice CLASS hasta el final.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 03/02/2010, 09:56
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 21 años
Puntos: 8
Respuesta: Funcion para mostrar filas de una tabla

Código PHP:
class Carrito {
    var 
$conn;
    
    public function 
__construct() {
        
$this->Conectar();
    }
    
    private function 
Conectar() {
        
$this->conn mysql_connect(HOSTUSERPASS);
        
mysql_select_db(DB);
        
        return 
$this->conn;
    }
    
    private function 
EjecutarQuery($sql) {
        return 
mysql_query($sql);
    }
    
    private function 
NumeroFilas($rs) {
        return 
mysql_num_rows($rs);
    }
    
    private function 
RetornarFilas($rs) {
        return 
mysql_fetch_array($rs);
    }
    
    
/*********************************************/
    /*                                           */
    /* Funciones para carrito                    */
    /*                                           */
    /*********************************************/
    
    
public function ConseguirDatosProducto($producto) {
        
$str sprintf("SELECT A.codigo, A.nombre, A.foto_chica, B.marca FROM producto A, marca B WHERE A.codigo ='%s' AND A.id_marca = B.id_marca"
                        
mysql_real_escape_string($producto));
        
$rs $this->EjecutarQuery($str);
        return 
$this->RetornarFilas($rs);
    }
    
    public function 
AgregarCarrito($id$pro$nom$fot$can$mar) {
        
$str sprintf("SELECT car_id, car_prd, car_can FROM carrito WHERE car_id = '%s' AND car_prd = '%s'"
                        
mysql_real_escape_string($id), 
                        
mysql_real_escape_string($pro));
        
$rs $this->EjecutarQuery($str);
        
$nr $this->NumeroFilas($rs);
        
        if (
$nr 0) {
            
$arr1 $this->RetornarFilas($rs);
            
$can $arr1[2];
            
$ncan $can++;
            
$str sprintf("UPDATE carrito SET car_can = %d WHERE car_id = '%s'"
                            
mysql_real_escape_string($ncan), 
                            
mysql_real_escape_string($id));
        }
        else {
            
$str sprintf("INSERT INTO carrito VALUES ('%s', '%s', '%s', '%s', %d, '%s')"
                            
mysql_real_escape_string($id), 
                            
mysql_real_escape_string($pro), 
                            
mysql_real_escape_string($nom), 
                            
mysql_real_escape_string($fot), 
                            
mysql_real_escape_string($can), 
                            
mysql_real_escape_string($mar));
        }
        
        if (
$this->EjecutarQuery($str)) {
            
header("location: vercarrito.php?id=$id");
        }
    }
    
    public function 
VerCarrito($id) {
        
$str sprintf("SELECT * FROM carrito WHERE car_id = '%s'"
                        
mysql_real_escape_string($id));
        
$rs $this->EjecutarQuery($str);
        
$nr $this->NumeroFilas($rs);
        
        echo 
"<table>";
        echo 
"<tr>";
        echo 
"<th>Producto</th>";
        echo 
"<th>Descripcion</th>";
        echo 
"<th>Marca</th>";
        echo 
"<th>Cantidad</th>";
        echo 
"<th>Foto</th>";
        echo 
"</tr>";
        
        if (
$nr 0) {
            while (
$arr $this->RetornarFilas($rs)) {
                echo 
"<tr class='contenido'>";
                echo 
"<td class='contenido'>$arr[1]</td>";
                echo 
"<td class='contenido'>$arr[2]</td>";
                echo 
"<td class='contenido'>$arr[5]</td>";
                echo 
"<td class='contenido'>$arr[4]</td>";
                echo 
"<td class='contenido'><img src='intranet/imagenes/foto/".$arr[3]."' alt='' /></td>";
                echo 
"<td class='contenido'><a href=\"javascript:EliminarItem('".$arr[0]."', '".$arr[1]."');\">Eliminar</a></td>";
                echo 
"</tr>";
            }
        }
        else {
            echo 
"<tr>";
            echo 
"<td>No hay productos seleccionados.</td>";
            echo 
"</tr>";
        }
        
        echo 
"</table>";
    }
    
    public function 
EliminarItemCarrito($id$producto) {
        
$str sprintf("DELETE FROM carrito WHERE car_id = '%s' AND car_prd = '%s'"
                        
mysql_real_escape_string($id), 
                        
mysql_real_escape_string($producto));
        
        if (
$this->EjecutarQuery($str)) {
            
header("location: vercarrito.php?id=$id");
            exit();
        }
        else {
            echo 
"<script type='text/javascript'>";
            echo 
"alert('No se puede eliminar el item.');location.href='vercarrito.php?id='".$id.";";
            echo 
"</script>";
        }
    }
    
    public function 
EnviarPedido($id$email) {
        
//Contenido del correo
        
$to "[email protected]";
        
$subject "Pedido de usuario";
        
$contenido "Correo enviado el " date("d/m/Y") . " a las " date("H:i:s");
        
$contenido .= "\r\n\r\n";
        
$contenido .= "Contenido del pedido" "\r\n\r\n";
        
$contenido .= "CODIGO / PRODUCTO / CANTIDAD / MARCA" "\r\n\r\n";
        
        
$str sprintf("SELECT * FROM carrito WHERE car_id = '%s'"
                        
mysql_real_escape_string($id));
        
$rs $this->EjecutarQuery($str);
        while (
$arr $this->RetornarFilas($rs)) {
            
$contenido .= $arr[1] . " - " $arr[2] . " - " $arr[4] . " - " $arr[5] . "\r\n";
        }
        
        
$contenido .= "\r\n\r\n" "Enviado por: $email" "\r\n\r\n";
        
        if (
mail($to$subject$contenido"From: ".$email)) {
            
$str sprintf("DELETE FROM carrito WHERE car_id = '%s'"
                            
mysql_real_escape_string($id));
            
$this->EjecutarQuery($str);
        }
    }
    
    
/*********************************************/
    /*                                           */
    /* Funciones para noticias                   */
    /*                                           */
    /*********************************************/
    
    
public function MostrarNoticias() {
        
$str "SELECT * FROM noticias ORDER BY not_fecha DESC";
        
$rs $this->EjecutarQuery($str);
        
$nr $this->NumeroFilas($rs);
        
        
$res "<table>";
        
$res .= "<tr>";
        
$res .= "<th>C&oacute;digo</th>";
        
$res .= "<th>Fecha</th>";
        
$res .= "<th>Tema</th>";
        
$res .= "<th>Resumen</th>";
        
$res .= "<th>Activo</th>";
        
$res .= "</tr>";

        if (
$nr 0) {
            while (
$arr $this->RetornarFilas($rs)) {
                
$res .= "<tr>";
                
$res .= "<td>".$arr[0]."</td>";
                
$res .= "<td>".date("d/m/Y"strtotime($arr[1]))."</td>";
                
$res .= "<td>".$arr[2]."</td>";
                
$res .= "<td>".$arr[3]."</td>";
                
$res .= "<td>".$arr[6]."</td>";
                
$res .= "</tr>";
            }
        }
        else {
            
$res .= "<tr>";
            
$res .= "<td colspan='5'>No hay noticias publicadas.</td>";
            
$res .= "</tr>";
        }
        
        
        
$res .= "</table>";
        
        echo 
$res;
    }

__________________
El aprendiz.
  #6 (permalink)  
Antiguo 03/02/2010, 10:00
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Funcion para mostrar filas de una tabla

Ok, primero no veo donde estan declaradas las variables HOST, USER, PASS Y DB. Acuerdate que las variables tienes que indicarlas dentro de la función como global. Yo te sugiero que en cada función que diga mysql_query le agregues la función mysql_error().
Código PHP:
Ver original
  1. mysql_query("aqui va tu consulta") or die(mysql_error());
Tal vez con ello te indicará algún error.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 03/02/2010, 10:32
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 21 años
Puntos: 8
Respuesta: Funcion para mostrar filas de una tabla

le puse lo que dijiste del error de mysql y me salio esto en la pagina:

Access denied for user 'promedpe'@'localhost' (using password: NO)

Y revise los datos de acceso de la base de datos y si estan bien, las constantes que uso HOST, USER, PASS, DB estan en el archivo define.php y lo llamo asi:
Código PHP:
require("define.php");

class 
Carrito {
...

el archivo define.php esta asi:
Código PHP:
define("HOST""localhost");
define("USER""promedpe_promed");
define("PASS""admin");
define("DB""promedpe_promed"); 
__________________
El aprendiz.
  #8 (permalink)  
Antiguo 03/02/2010, 10:36
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Funcion para mostrar filas de una tabla

¿Por qué en vez de usar variables, no estas ingresando la información directamente?, además acuerdate lo que te indique de global.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 03/02/2010, 10:45
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 21 años
Puntos: 8
Respuesta: Funcion para mostrar filas de una tabla

cambie la funcion conectar, ahora esta asi:
Código PHP:
private function Conectar() {
        
$this->conn mysql_connect("localhost""promedpe_promed""admin");
        
mysql_select_db("promedpe_promed");
        
        return 
$this->conn;
    } 
Pero todo esto es extraño pq todo estaba funcionando y hoy en la mañana ya no mas.
__________________
El aprendiz.
  #10 (permalink)  
Antiguo 03/02/2010, 10:47
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Funcion para mostrar filas de una tabla

Desconozco porque antes te funcionaba y ahora no, pero sí debes tener conciente que toda variable declarada fuera de alguna función, no te debe funcionar (valga la redundancia), si lees lo del enlace de global vas a enteder el por qué.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #11 (permalink)  
Antiguo 03/02/2010, 10:54
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 21 años
Puntos: 8
Respuesta: Funcion para mostrar filas de una tabla

Sip, gracias.
__________________
El aprendiz.

Etiquetas: filas, funcion, tablas
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 08:10.