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

(aprendiendo) No puedo hacer funcionar mis clases, ayuda por favor.

Estas en el tema de (aprendiendo) No puedo hacer funcionar mis clases, ayuda por favor. en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola amigos, la siguiente es mi primera clase con POO con un rejunte de cosas aprendidas hoy de las FAQs del foro. De hecho estoy ...
  #1 (permalink)  
Antiguo 06/07/2007, 12:56
Avatar de marcosr  
Fecha de Ingreso: agosto-2005
Ubicación: Montevideo, Uruguay
Mensajes: 451
Antigüedad: 18 años, 8 meses
Puntos: 5
(aprendiendo) No puedo hacer funcionar mis clases, ayuda por favor.

Hola amigos, la siguiente es mi primera clase con POO con un rejunte de cosas aprendidas hoy de las FAQs del foro.

De hecho estoy intentando hacer yo solo una clase para mostrar los usuarios en línea en base a la que está posteada en las FAQs de POO.

Hasta ahora tengo lo siguiente:

Código PHP:
<?php

class conectados {

    var 
$ahora;

    function 
conectados() {
    
        
// Conexión a la BD
    
        
$conex mysqli_connect('localhost''usuario''contraseña''BD') or trigger_error(mysqli_error,E_USER_ERROR); 
        
        
// Calculo de tiempo que se permitirá como conectado
        
        
$tiempo_permitido 1800;
        
$tiempo_actual time();
        
$tiempo $tiempo_actual $tiempo_permitido;
        
        
// Consulta a la BD que nos trae los usuarios conectados

        
$query_conectados "SELECT * FROM conectados WHERE (tiempo >= '$tiempo')";
        
$conectados mysqli_query($conex$query_conectados) or die(mysqli_error($conex));
        
$row_conectados mysqli_fetch_assoc($conectados);
        
$this->ahora mysqli_num_rows($conectados);
        
        function 
cuantos() {
        
            echo 
$this->ahora;
        
        }
        
        
// Bucle que muestra en pantalla a esos usuarios
        
        
function quienes() {
        
            do { echo 
$row_conectados['usuario'].', '; } while ($row_conectados mysqli_fetch_assoc($conectados));
            
        }
        
        
// Sentencia, consulta, que borra a los usuarios con tiempo excedido
        
        
$query_borrar "DELETE FROM conectados WHERE (tiempo <= '$tiempo')";
        
$borrar mysqli_query($conex$query_borrar) or die(mysqli_error($conex));
        
        
mysqli_close($conex);
    
    }
    
}

?>
Y luego intento llamarla desde la página haciendo lo siguiente:

Código PHP:
<?

// Usuarios en línea

$conectados = new conectados();



?>
<div id="pie">
        <div class="superior"></div>
        <div class="contenido">
            <div id="conectados">
            <div class="superior">Usuarios conectados: (<?php $conectados->cuantos(); ?>)</div>
            <div class="conectados">
            <?php $conectados->quienes(); ?>
            </div>
            </div>
        </div>
    </div>
Pero no funciona, me presenta el siguiente error para los dos objetos:

Código:
Fatal error: Call to undefined method conectados::quienes() in D:\www\sedice\index.php on line 144
Agradecería me marquen todos los errores que encuentren y me si tienen una respuesta a mi pregunta, por qué no funciona, agradecería me den la respeusta.

Muchas gracias !
__________________
Yo hago preguntas inteligentes para obtener respuestas rapidas, y vos?
(únete a la campaña !)
  #2 (permalink)  
Antiguo 06/07/2007, 14:03
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 4 meses
Puntos: 3
Re: (aprendiendo) No puedo hacer funcionar mis clases, ayuda por favor.

LLamas a $conectados->quienes()...

ese metodo esta dentro del metodo conectados().

Para poner un constructor tiene que utilizar:

public function __construct(){
....
}


Saludos
  #3 (permalink)  
Antiguo 06/07/2007, 14:19
Avatar de marcosr  
Fecha de Ingreso: agosto-2005
Ubicación: Montevideo, Uruguay
Mensajes: 451
Antigüedad: 18 años, 8 meses
Puntos: 5
Re: (aprendiendo) No puedo hacer funcionar mis clases, ayuda por favor.

Hola, empleé lo que tu dices pero me sigue dando el mismo error.

Código:
Fatal error: Call to undefined method conectados::quienes() in D:\www\sedice\index.php on line 159
__________________
Yo hago preguntas inteligentes para obtener respuestas rapidas, y vos?
(únete a la campaña !)
  #4 (permalink)  
Antiguo 06/07/2007, 17:26
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 4 meses
Puntos: 3
Re: (aprendiendo) No puedo hacer funcionar mis clases, ayuda por favor.

Si solo has cambiado el nombre de conectados (el metodo) por __construct te seguira dando error.

Dentro de ese metodo, tienes varias funciones...sacalas fuera de la funcion.

tu tienes

Código PHP:
public function __construct(){
          ...
          function 
conectados(){
                  ...
          }
          ...

cambialo a:

Código PHP:
public function __construct(){
          ...
          
$this->conectados();
          ...
}
function 
conectados(){
        ...



Saludos
  #5 (permalink)  
Antiguo 06/07/2007, 17:54
Avatar de marcosr  
Fecha de Ingreso: agosto-2005
Ubicación: Montevideo, Uruguay
Mensajes: 451
Antigüedad: 18 años, 8 meses
Puntos: 5
Re: (aprendiendo) No puedo hacer funcionar mis clases, ayuda por favor.

Hola, ocurre que luego de haber estado horas y horas intentando, hice (antes de leer tu mensaje) lo que dices y me funcionó. Me alegro de saber que es lo correcto.

Muchas gracias !
__________________
Yo hago preguntas inteligentes para obtener respuestas rapidas, y vos?
(únete a la campaña !)
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 15:41.