Foros del Web » Programando para Internet » PHP »

web para like de facebook

Estas en el tema de web para like de facebook en el foro de PHP en Foros del Web. Hola, hace tiempo que leo este foro, pero ahora no encuentro como resolver mi duda, lo que pasa esque estoy montando una web para crear ...
  #1 (permalink)  
Antiguo 22/08/2011, 14:15
 
Fecha de Ingreso: agosto-2011
Mensajes: 10
Antigüedad: 8 años, 3 meses
Puntos: 0
web para like de facebook

Hola, hace tiempo que leo este foro, pero ahora no encuentro como resolver mi duda, lo que pasa esque estoy montando una web para crear frases de facebook, tengo la categoria de top frases y ultimas frases, pero me gustaria hacer una categoria de destacadas al azar y nose si se podra hacer una como tendencias por dias, es decir, que se vean las frases que mas me gusta le an puesto por dia, les dejo el codigo de la categoria top frases para ver si alguien me puede ayudar, saludos y gracias

Código PHP:
<?php
    
/* 
       First get total number of rows in data table. 
       If you have a WHERE clause in your query, make sure you mirror it here.
    */
    
include('confgk/db_xsaacon.php');
    
mysql_connect("$host""$username""$password")or die("cannot connect");
    
mysql_select_db("$db_name")or die("cannot select DB");
    
$query "SELECT COUNT(*) as num FROM `like`";
    
$total_pages mysql_fetch_array(mysql_query($query));
    
$total_pages $total_pages[num];
    
$limit '23';
    
    
/* Setup vars for query. */
     
$targetpage "top.php";
    
$page $_GET['page'];
    if(
$page
        
$start = ($page 1) * $limit;             //first item to display on this page
    
else
        
$start 0;                                //if no page var is given, set start to 0
    
    /* Get data. */                                                             
    
$resultst mysql_query("SELECT * FROM `like` ORDER BY count DESC LIMIT $start,$limit");
    
/* Setup page vars for display. */
    
if ($page == 0$page 1;                    //if no page var is given, default to 1.
    
$prev $page 1;                            //previous page is page - 1
    
$next $page 1;                            //next page is page + 1
    
$lastpage ceil($total_pages/$limit);        //lastpage is = total pages / items per page, rounded up.
    
$lpm1 $lastpage 1;                        //last page minus 1
    
?>
  #2 (permalink)  
Antiguo 22/08/2011, 14:24
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 11 años, 4 meses
Puntos: 416
Respuesta: web para like de facebook

Tienes algun campo para la fecha cuando una persona hace un like? Que estructura tiene tu tabla "like"?

Si no guardas la fecha de cuando una persona hace un like sera imposible obtener los mas "hot" de X dia
  #3 (permalink)  
Antiguo 22/08/2011, 14:25
 
Fecha de Ingreso: agosto-2011
Mensajes: 10
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: web para like de facebook

Gracias por responder, dejame revisar, con lo de destacados al azar me puedes ayudar mientras?
  #4 (permalink)  
Antiguo 22/08/2011, 14:29
 
Fecha de Ingreso: agosto-2011
Mensajes: 10
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: web para like de facebook

esta es la tabla like

Código:
CREATE TABLE IF NOT EXISTS `like` (
  `id` int(11) NOT NULL auto_increment,
  `rand` varchar(244) NOT NULL,
  `like` longtext NOT NULL,
  `count` int(11) NOT NULL,
  `created` varchar(255) NOT NULL,
  `last_view` varchar(255) NOT NULL,
  `youtube` mediumtext NOT NULL,
  `type` varchar(255) NOT NULL,
  `img` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
  #5 (permalink)  
Antiguo 22/08/2011, 16:50
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 11 años, 4 meses
Puntos: 416
Respuesta: web para like de facebook

Para obtener registros ordenados al azar, lo puedes hacer directamente desde tu consulta.
SELECT * FROM tabla ORDER BY RAND()
  #6 (permalink)  
Antiguo 22/08/2011, 16:55
 
Fecha de Ingreso: agosto-2011
Mensajes: 10
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: web para like de facebook

Muchas gracias! me sirvio, me podrias ayudar con lo otro porfavor? saludos
  #7 (permalink)  
Antiguo 22/08/2011, 16:59
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 11 años, 4 meses
Puntos: 416
Respuesta: web para like de facebook

Lo demas solo sera posible si guardas algun tipo de relacion usuario-like. Donde cada vez que el usuario hace un like, se guarda un registro con la fecha en la que fue hecho esto. Sin esa relacion sera imposible obtener esa informacion.
  #8 (permalink)  
Antiguo 22/08/2011, 17:02
 
Fecha de Ingreso: agosto-2011
Mensajes: 10
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: web para like de facebook

y como puedo hacer eso? saludos
  #9 (permalink)  
Antiguo 22/08/2011, 17:15
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 11 años, 4 meses
Puntos: 416
Respuesta: web para like de facebook

La idea seria tener una tabla adicional que contenga AL MENOS los siguientes campos:
Un campo con la fecha y/o hora del like
Otro campo mas que contenga el ID del like, esto seria una llave foranea que haga referencia a tu tabla "like".

Una vez hecho esto, cada vez que un usuario de un "like" tienes que guardar el ID del like y la fecha en la que se realizo la acción.
Con esa información si podrás sacar los mas cliqueados el día de ayer.
Código SQL:
Ver original
  1. SELECT l.id, l.LIKE, r.fecha, COUNT(*) AS clicks FROM LIKE l INNER JOIN tabla_relacion  r ON (r.id_like = l.id) GROUP BY r.fecha
Con eso obtienes la cantidad de clicks por cada fecha. Con solo filtrar usando WHERE puedes obtener los del dia de ayer.
  #10 (permalink)  
Antiguo 22/08/2011, 17:22
 
Fecha de Ingreso: agosto-2011
Mensajes: 10
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: web para like de facebook

disculpa por mi ignoracia pero como hago lo primero que me dijiste? tienes alguna consulta para ejecutarla en el phpmyadmin, saludos
  #11 (permalink)  
Antiguo 22/08/2011, 18:53
 
Fecha de Ingreso: agosto-2011
Mensajes: 10
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: web para like de facebook

cree una tabla en like que se llama last_view y muestra las likes recientes, tambien me sirve como tendencias del dia, mi consulta ahora es como la pongo aqui

Código PHP:
<?php 
    
/*  
       First get total number of rows in data table.  
       If you have a WHERE clause in your query, make sure you mirror it here. 
    */ 
    
include('confgk/db_xsaacon.php'); 
    
mysql_connect("$host""$username""$password")or die("cannot connect"); 
    
mysql_select_db("$db_name")or die("cannot select DB"); 
    
$query "SELECT COUNT(*) as num FROM `like`"
    
$total_pages mysql_fetch_array(mysql_query($query)); 
    
$total_pages $total_pages[num]; 
    
$limit '23'
     
    
/* Setup vars for query. */ 
     
$targetpage "top.php"
    
$page $_GET['page']; 
    if(
$page)  
        
$start = ($page 1) * $limit;             //first item to display on this page 
    
else 
        
$start 0;                                //if no page var is given, set start to 0 
     
    /* Get data. */                                                              
    
$resultst mysql_query("SELECT * FROM `like` ORDER BY count DESC LIMIT $start,$limit"); 
    
/* Setup page vars for display. */ 
    
if ($page == 0$page 1;                    //if no page var is given, default to 1. 
    
$prev $page 1;                            //previous page is page - 1 
    
$next $page 1;                            //next page is page + 1 
    
$lastpage ceil($total_pages/$limit);        //lastpage is = total pages / items per page, rounded up. 
    
$lpm1 $lastpage 1;                        //last page minus 1 
     
?>

Etiquetas: facebook, frameworks-y-php-orientado-a-objetos, frases
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 10:32.