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 !