Autor Tema: Ayuda, no sé como hacer un sistema de follow  (Leído 824 veces)

Desconectado criollonalubre

  • PHPerit@
  • *
  • Mensajes: 34
  • Karma: 0
  • Sexo: Masculino
  • Nuev@ PHPer@
    • Ver Perfil
    • Anxotvi
Ayuda, no sé como hacer un sistema de follow
« en: 22 de Diciembre de 2013, 23:55:29 pm »
Hola, en estos meses he estado trabajando en una red social. Y ya me falta muuuuy poco para acabar. Pero no sé como hacer el follow.
He pensado en hacerlo con un array para que despues se busquen los mensajes en la base de datos con los datos del array.
Pero no sé como enviar un array a la base de datos, ni como recibirlo de forma correcta. Porfavor necesito ayuda.
Sé html y css avanzado pero estoy aprendiendo php y js, hago lo que puedo.

Comunidad PHPeros

Ayuda, no sé como hacer un sistema de follow
« en: 22 de Diciembre de 2013, 23:55:29 pm »

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.737
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:Ayuda, no sé como hacer un sistema de follow
« Respuesta #1 en: 23 de Diciembre de 2013, 01:53:03 am »
serialize(), unserialize(), listo.
Twitter: @JoakoM010



Desconectado criollonalubre

  • PHPerit@
  • *
  • Mensajes: 34
  • Karma: 0
  • Sexo: Masculino
  • Nuev@ PHPer@
    • Ver Perfil
    • Anxotvi
Re:Ayuda, no sé como hacer un sistema de follow
« Respuesta #2 en: 23 de Diciembre de 2013, 02:02:51 am »
Código: [Seleccionar]
if (isset($_REQUEST['quense'])) {//Si se envia
        $email = $_SESSION['em'];//email
        $engadir = array(serialize($preg));//preg es el usuario defenido anteriormente
        $_SESSION['seguindo'] = $engadir;//la session que guarda el array
        $upseg = mysql_query("UPDATE  `1ksn2uu3882d`.`1ksn2uu3882d` SET  `seguindo` =  '$engadir' WHERE  `1ksn2uu3882d`.`email` = $email");//guardarlo en la bd
        $past = $_SERVER['HTTP_REFERER'];
        header ("location: $past");//Volver a la url anterior
    }
   

No llega ningún dato de esta manera a la bd. Pero antes si(aunque sin ningún funcionamiento).
Sé html y css avanzado pero estoy aprendiendo php y js, hago lo que puedo.

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.737
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:Ayuda, no sé como hacer un sistema de follow
« Respuesta #3 en: 23 de Diciembre de 2013, 12:01:33 pm »
Código: [Seleccionar]
if (isset($_REQUEST['quense'])) {//Si se envia
        $email = $_SESSION['em'];//email
        $engadir = array(serialize($preg));//preg es el usuario defenido anteriormente
        $_SESSION['seguindo'] = $engadir;//la session que guarda el array
        $upseg = mysql_query("UPDATE  `1ksn2uu3882d`.`1ksn2uu3882d` SET  `seguindo` =  '$engadir' WHERE  `1ksn2uu3882d`.`email` = $email");//guardarlo en la bd
        $past = $_SERVER['HTTP_REFERER'];
        header ("location: $past");//Volver a la url anterior
    }
   

No llega ningún dato de esta manera a la bd. Pero antes si(aunque sin ningún funcionamiento).

$engadir = array(serialize($preg));/
Ese es el error.
es serialize(array());
Twitter: @JoakoM010



Desconectado criollonalubre

  • PHPerit@
  • *
  • Mensajes: 34
  • Karma: 0
  • Sexo: Masculino
  • Nuev@ PHPer@
    • Ver Perfil
    • Anxotvi
Re:Ayuda, no sé como hacer un sistema de follow
« Respuesta #4 en: 24 de Diciembre de 2013, 14:45:16 pm »
$engadir = array(serialize($preg));/
Ese es el error.
es serialize(array());
Muchisimas Gracias, ahora lo recibe la base de datos, y funciona con uno, pero cuando uso unserialize() solo "traduce uno" al array. Es decir, por ejemplo: imprimo lo siguiente <?php print_r(unserialize($_SESSION['seguindo'])); ?> y me imprime esto "Array (
  • => a:2:{i:0;s:29:"a:2:{i:0;b:0;i:1;s:4:"lugh";}";i:1;s:7:"crazy77";} [1] => rosmonso )". Siento molestar. Muchas Gracias de todas maneras
Sé html y css avanzado pero estoy aprendiendo php y js, hago lo que puedo.

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re:Ayuda, no sé como hacer un sistema de follow
« Respuesta #5 en: 25 de Diciembre de 2013, 13:50:15 pm »
Nunca guardes varios valores o un conjunto de valores en un solo campo de la base de datos.

Lo que tienes que hacer es una tabla nueva, donde en cada fila tengas el ID del usuario que sigue, y el ID del usuario a quien está siguiendo.

Saludos
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado criollonalubre

  • PHPerit@
  • *
  • Mensajes: 34
  • Karma: 0
  • Sexo: Masculino
  • Nuev@ PHPer@
    • Ver Perfil
    • Anxotvi
Re:Ayuda, no sé como hacer un sistema de follow
« Respuesta #6 en: 25 de Diciembre de 2013, 15:44:51 pm »
muchas gracias pero tuve una idea y ya solucioné el problema. se envia ','elvalor, y ya está, non necesito más. Muchas Gracias de todas formas.  :D
Sé html y css avanzado pero estoy aprendiendo php y js, hago lo que puedo.

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.737
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:Ayuda, no sé como hacer un sistema de follow
« Respuesta #7 en: 25 de Diciembre de 2013, 21:06:29 pm »
muchas gracias pero tuve una idea y ya solucioné el problema. se envia ','elvalor, y ya está, non necesito más. Muchas Gracias de todas formas.  :D

Espero que lo estés haciendo por ID de usuario como bien menciono Carlos, de lo contrario, si un usuario se registra con un carácter especial (Digamos en este caso la coma ",") creará un conflicto con el código.
Twitter: @JoakoM010



Desconectado criollonalubre

  • PHPerit@
  • *
  • Mensajes: 34
  • Karma: 0
  • Sexo: Masculino
  • Nuev@ PHPer@
    • Ver Perfil
    • Anxotvi
Re:Ayuda, no sé como hacer un sistema de follow
« Respuesta #8 en: 25 de Diciembre de 2013, 21:08:01 pm »
En el usuario solo se permiten letras y _-
Sé html y css avanzado pero estoy aprendiendo php y js, hago lo que puedo.

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.737
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:Ayuda, no sé como hacer un sistema de follow
« Respuesta #9 en: 25 de Diciembre de 2013, 21:58:53 pm »
En el usuario solo se permiten letras y _-

Aun así es un fallo de seguridad que debes corregir.
Twitter: @JoakoM010



Desconectado criollonalubre

  • PHPerit@
  • *
  • Mensajes: 34
  • Karma: 0
  • Sexo: Masculino
  • Nuev@ PHPer@
    • Ver Perfil
    • Anxotvi
Re:Ayuda, no sé como hacer un sistema de follow
« Respuesta #10 en: 25 de Diciembre de 2013, 22:00:40 pm »
Muchas Gracias por vuestro aporte :D
Sé html y css avanzado pero estoy aprendiendo php y js, hago lo que puedo.

Desconectado vikomex

  • PHPerit@
  • *
  • Mensajes: 14
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:Ayuda, no sé como hacer un sistema de follow
« Respuesta #11 en: 31 de Diciembre de 2013, 08:11:18 am »
Lo idoneo es mantener en una tabla relacional esta información, ya que al cargar una misma celda con objetos jSON o serializados podría generar discrepancias.

tabla follows:

------------------------------------------
id_usuario | id_usuario_seguido
------------------------------------------
5 | 12 #Con eso se que el usuario con el id 5 sigue al usuario con el id 12

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.737
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:Ayuda, no sé como hacer un sistema de follow
« Respuesta #12 en: 31 de Diciembre de 2013, 15:10:59 pm »
Lo idoneo es mantener en una tabla relacional esta información, ya que al cargar una misma celda con objetos jSON o serializados podría generar discrepancias.

tabla follows:

------------------------------------------
id_usuario | id_usuario_seguido
------------------------------------------
5 | 12 #Con eso se que el usuario con el id 5 sigue al usuario con el id 12

Ocuparía mas espacio...
Con solo hacer una tabla llamada seguidores que contenga un identificador de usuario y los ids de las personas que sigues separadas con coma (Entiéndase ",") bastaría.

Si lo serializamos ocuparía mas espacio al igual con JSON.
-------------------------
id_user | siguiendo
-------------------------
1           |1,2,3,4
2           |6,22,23,88
1           |134,12,36,47

Y listo, sin tantas complicaciones, fácil de entender y se puede crear una clase respectiva sin tanto rollo.
Twitter: @JoakoM010



Desconectado vikomex

  • PHPerit@
  • *
  • Mensajes: 14
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:Ayuda, no sé como hacer un sistema de follow
« Respuesta #13 en: 31 de Diciembre de 2013, 20:10:53 pm »
Ocuparía mas espacio...
Con solo hacer una tabla llamada seguidores que contenga un identificador de usuario y los ids de las personas que sigues separadas con coma (Entiéndase ",") bastaría.

Si lo serializamos ocuparía mas espacio al igual con JSON.
-------------------------
id_user | siguiendo
-------------------------
1           |1,2,3,4
2           |6,22,23,88
1           |134,12,36,47

Y listo, sin tantas complicaciones, fácil de entender y se puede crear una clase respectiva sin tanto rollo.


Hola Joaquin, tengo 2 ideas acerca de este planteamiento.

Serializar o generar un jSON estoy de acuerdo por la cantidad de caracteres ocuparía "más espacio" ya que tendría que trabajarse en un campo con la propiedad "text".

Al hablar de escalabilidad tocamos el tema de el correcto diseño de un base de datos, en la estricta teoría, ocuparía más espacio un campo "text" o "varchar" para poder incorporar varios id´s divididos por comas, ya que en un int no es posible, eso haría más "pesada" esta celda por el simple hecho de tener esta propiedad.

Otra cosa, al buscar optimizar bases de datos hablamos de generar consultas anidadas, mediante tu planteamiento no podemos buscar a los usuarios que siga "equisUsuario" ya que tendríamos que aterrizarlos en código, divirir el string, strimear y tener que hacer un bucle para consultar -uno a uno- información del usuario.

Con una consulta sencilla a base de mi planteamiento podríamos generar esta información.

SELECT *.usuarios FROM follows, usuarios WHERE follows.id_usuario = $idUsuario AND usuarios.id_usuario = follows.id_usuario_seguido ORDER BY follows.id_follow DESC


Obtendremos un arreglo con la información de todos los usuarios que "equisUsuario" siga, en un orden descendente, es decir, en el orden en el que se fueron "siguiendo".

Saludos.