Mostrando las entradas con la etiqueta PHP. Mostrar todas las entradas
Mostrando las entradas con la etiqueta PHP. Mostrar todas las entradas

22 de septiembre de 2009

PHP Programación Orientada a Objetos Primeros Pasos para usarlo en EXTJS

Por algunos días he estado pensando en el ejemplo más sencillo para comenzar a dar clases explicando POO (Programación Orientada a Objetos) con PHP 5, y se me ha ocurrido lo siguiente:

class conector {
/* Parámetros de la conexión */
private $server = "localhost";
private $db = "Mi_BaseDeDatos";
private $user = "root";
private $pass = "root";
/* Funtion construc */
public function __construct()
{
$this->link=mysql_connect($this->server,$this->user,$this->pass);
mysql_select_db($this->db);
}
/* Ejecuta consulta sql */
public function sql($query)
{
$request = (!mysql_query($query,$this->link))?("Error MySQL: ".mysql_error()." \n Query: $query"):("Se realizo la operación");
mysql_close();
return "{ \"success\": true, \"msg\": \"$request\"}";
}
/* Retorna un JSON para ser leído en el cliente por algún componente */
public function json($query)
{
$arr = array();
$rs = mysql_query($query,$this->link);
while($obj = mysql_fetch_object($rs)) {
$arr[] = $obj;
}
mysql_close();
return json_encode($arr);
}
}
?>


Posteriormente a esto, ahora nos toca utilizar alguna de nuestras funciones, por ejemplo, queremos un json de una tabla, simplemente:


$enlace = new conector();
echo $enlace->json("Select * from personal");

20 de septiembre de 2008

Convertir Segundos a Dias,Horas,Minutos y Segundos

Hace algunos días haciendo un sistemita de publicación de noticias se me ocurrió agregarle una característica interesante para que dijera algo así parecido: Esta noticia fue publicada hace 5 días 4 horas 3 minutos 4 segundos.

Bueno pensando en ello nació el siguiente código, que lo consigue, pasando como parámetro únicamente el numero de segundos transcurridos entre la fecha de publicación de la noticia y la fecha actual, acá pego un ejemplo de como obtener eso en SQL:

SQL:


SELECT (UNIX_TIMESTAMP( NOW( ) )
- UNIX_TIMESTAMP( fecha )) AS input_seconds FROM noticias


Y, por supuesto, la función que lo calcula a continuación:


function human_time($input_seconds) {

    $days = "";$hours = "";$minutes = "";$seconds = "";

    $days=floor($input_seconds / 86400);

    $remainder=floor($input_seconds % 86400);

    $hours=floor($remainder / 3600);

    $remainder=floor($remainder % 3600);

    $minutes=floor($remainder / 60);

    $seconds=floor($remainder % 60);



    if ($days>0) $days = "$days dias ";

    if ($hours>0) $hours = "$hours hrs ";

    if ($minutes>0) $minutes = "$minutes min ";

    if ($seconds>0) $seconds = "$seconds seg ";

return $days.$hours.$minutes.$seconds;

}