Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: z3nth10n en 30 Marzo 2013, 14:19 pm



Título: Sistema de Categorias, Paginas, Comentarios y Starratings?
Publicado por: z3nth10n en 30 Marzo 2013, 14:19 pm
Hola soy nuevo en esto del MySQL y tengo la base de como crear documentos con ids
http://foro.elhacker.net/php/ayuda_impresion_de_datos_por_id_php_mysql-t385224.0.html

Yo lo voy a personalizar y todo eso, pero, igualmente, tengo 1 trillon de dudas,

Lo primero que tengo que decir es que voy a crear una web tipo minijuegos.com y necesito algunas bases para empezar, esas bases espero encontrarlas aquí con la ayuda de los demás.

La primera duda, es como hago un sistema de categorias para clasificar mis juegos?
La segunda duda, voy a meter los juegos en una tabla, como hago para poder meterlas todas en la misma tabla, y luego, como puedo hacer un sistema de que apartir de x juegos en la misma pagina, se cree otra?
Siguiente duda, como puedo poner un sistema de comentarios en la misma pagina del juego? Y un sistema de starrating?

Un saludo.
PD: Iré buscando cosas, de hecho ya he encontrado el sistema de starrating y comentarios, lo unico que no se acoplarlo a mi código, denme unos minutos, y le pongo todo lo que hice y encontré.  ;)



Bueno, pues mis códigos son estos:

Consulta a MyPHPMyAdmin:

Código
  1. CREATE TABLE `juegos` (
  2.  `id` BIGINT(7) NOT NULL AUTO_INCREMENT,
  3.  `miniatura` VARCHAR(500) NOT NULL DEFAULT '',
  4.  `linkjuego`  VARCHAR(500) NOT NULL DEFAULT '',
  5.  `nombre`  VARCHAR(50) NOT NULL DEFAULT '',
  6.  `descripcion`  VARCHAR(500) NOT NULL DEFAULT '',
  7.  KEY `id` (`id`)
  8. )

Primera página:

Código
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Inserta tu juego aquí</title>
  6. <script>
  7. function contar(input) {
  8. //Comprobamos que no pase de 3000 caracteres y si pasa, que borre los sobrantes
  9. if (input.value.length >= 500) {
  10. input.value = input.value.substring(0,500);
  11. }
  12. //alamacenamos el resto
  13. var resto = 500 - input.value.length;
  14.  
  15. //imprimimos los caracteres restantes en el span
  16. var final=document.getElementById('letras');
  17. final.innerHTML=resto+" caracteres";
  18.  
  19. }
  20. </script>
  21. <style type="text/css">
  22. <!--
  23. body,td,th {
  24.   font-family: Verdana, Arial, Helvetica, sans-serif;
  25.   font-size: 14px;
  26. }
  27. body {
  28.  
  29. }
  30. #letras {
  31. position: absolute;
  32. right: -10px;
  33. top: -5px;
  34. font-size: 20px;
  35. font-weight: bold;
  36. color: #ccc;
  37. }
  38. .form {
  39. position: relative;
  40. margin: 1em 0;
  41. width: 490px;
  42. }
  43. #descripcion {
  44. width: 490px;
  45. height: 60px;
  46. border: 2px solid #ccc;
  47. padding: 3px;
  48. color: #555;
  49. font: 16px Arial, Helvetica, sans-serif;
  50. }
  51. -->
  52. </style></head>
  53.  
  54. <body>
  55. <form id="form1" name="form1" method="post" action="envia.php">
  56.  <b>Nombre del juego:</b>
  57.    <input type="text" name="nombre" id="nombre" />
  58. <div class="form">
  59.         <label for="message" style="font-weight:bold;display: block;">Descripci&oacute;n del juego:</label>
  60.         <textarea rows="5" onkeyup="contar(this);" cols="100" name="descripcion" id="descripcion"></textarea><span id="letras">500 caracteres</span>
  61.        </div>
  62.  <b>Link del juego:</b>
  63.    <input type="text" name="linkjuego" id="linkjuego" /><br>
  64.  <b>Miniatura:</b>
  65.    <input type="text" name="miniatura" id="miniatura" /><br>
  66. <input type="submit" name="button" id="button" value="Enviar">
  67. </form>
  68. </body>
  69. </html>

Este es el formulario.html, que sirve para enviar los archivos a la Base de datos, con la ayuda de envia.php:

Código
  1. <?php
  2. $miniatura = $_REQUEST['miniatura'] ;
  3. $linkjuego = $_REQUEST['linkjuego'] ;
  4. $nombre = $_REQUEST['nombre'] ;
  5. $descripcion = $_REQUEST['descripcion'] ;
  6.  
  7. require_once(dirname(__FILE__) . '/Settings.php');
  8. mysql_connect ($db_server, $db_user, $db_passwd) or die ('Error: ' . mysql_error());
  9. mysql_select_db ($db_name);
  10. $query="INSERT INTO juegos (miniatura, linkjuego, nombre, descripcion) VALUES ('$miniatura', '$linkjuego', '$nombre', '$descripcion')";
  11. mysql_query($query) or die ('Error en la carga de datos');
  12. header("location:http://mundobajo.net/okay.php")
  13. ?>

Y el test.php que muestra los juegos:

Código
  1. <?php  
  2. require_once(dirname(__FILE__) . '/Settings.php');
  3. $link=mysql_connect($db_server, $db_user, $db_passwd);
  4. mysql_select_db($db_name,$link) OR DIE ("Error: Imposible Conectar");
  5.  
  6.  
  7. $id = (int)$_GET['id'];
  8.  
  9. $sql = "SELECT * FROM grupos WHERE id=".$id." LIMIT 1";
  10. $query = mysql_query($sql, $link) or exit(mysql_error());
  11.  
  12. if( !$query || mysql_num_rows($query) <= 0 )
  13.  exit('No se encontraron resultados');
  14.  
  15. $row = mysql_fetch_assoc($query);
  16.  
  17. echo
  18. '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  19. <html xmlns="http://www.w3.org/1999/xhtml">
  20. <head>
  21. <title>'.$row['nombre'].'</title>
  22. <style>
  23.  
  24. </style>
  25. <script src="http://code.jquery.com/jquery-1.9.0.js"></script>
  26. <script type="text/javascript">
  27.  
  28. </script>
  29. </head>
  30. <body>
  31. Me falta terminarlo xD
  32. </body>
  33. </html>';
  34.  
  35. exit; // o no, si deseas incluir más información
  36.  
  37. ?>

Que me falta?

  • La index.php para mostrar los juegos, para que veais un ejemplo claro, lo voy a hacer a lo minijuegos.com (hecho)
  • Lo de las paginas en la index.php (a medio hacer)
  • Las categorías (hecho)
  • Los starragins (sin hacer) y los comentarios (hecho)

Más tareas:

Dentro de Formulario.php:

  • Adaptarlo a SMF
  • Optimizar code
  • Poner contraseña de acceso y demas chorradas de seguridad
  • Sistema de tags.

Dentro de Test.php:

  • Convertirlo en Game.php
  • Adaptarlo a SMF y hacer una especie de Index.php (Hecho)
  • Optimizar comentarios: (Hecho)
> Solo permitir en usuarios registrados
           > Poner avatar de usuario, link a los usuarios
           > Poner fecha de posteo
           > Poner sistema de moderación y administración de comentarios (Reportes, Sistema de Thumbs up/Down, Mejores comentarios + Borrar comentrio a los 50 dislikes o decir que tiene muchos, + Antispam, y Marcar como spam, puede)
  • Terminar código de reconocimiento de juegos
  • Poner Starrating
  • Sistema de favoritos
  • Sistema de descarga del juego
  • Sistema de pantalla completa o por lo menos de ampliación
  • Poner partidas jugadas (con visitas únicas)
  • Juegos recomendados
  • Recomendar por Google+, Twitter, Facebook, etc. (Hecho)
  • Sistema de Tags para el Meta tag? (No recomendado, así que nada)

Dentro del Index.php?action=juegos:

  • Pasarlo a Index.php (Hecho)
  • Poner buscador de juegos
  • Poner tablas de categorías
  • Otras tablas: Webs afiliadas, juegos más jugados y más votados, por semana y mensualmente, y diariamente, publicidad, etc...
  • Mejorar aspectos de los juegos
Cambios generales:

  • Grafica de visitas diarias, mensuales, anuales, etc. A lo SocialBlade
  • Mejorar lo de las tablas del inicio y de lugares
  • Mejorar estadísticas
  • Mudar la web y tablas MySQL
Ayudenmeee!

Links donde he encontrado información util:

http://megarush.net/5-star-rating-system-with-php-mysql-jquery-and-ajax/

http://www.taringa.net/posts/hazlo-tu-mismo/10701668/Sistema-de-comentarios-con-mysql.html

Sobre las categorias, no tengo ni idea, porque no se ni hacerlo.

Ahora, quien me ayuda? :P

Mi web, donde podéis ver todo el desarrollo:

http://ikillcraft.a0001.net/formulario.html
http://ikillcraft.a0001.net/test.php?id=1

Un saludo.


Título: Re: Sistema de Categorias, Paginas, Comentarios y Starratings?
Publicado por: Carloswaldo en 6 Abril 2013, 19:36 pm
Creo que te conviene entender primero el modelo entidad-relación

http://es.wikipedia.org/wiki/Modelo_entidad-relaci%C3%B3n
http://www.cs.us.es/cursos/bd-2004/HTML/modeloER.htm

Por ejemplo, para tu caso, tendrías que crear una nueva tabla llamada "categorías" en la base de datos, incluir un campo "id_categoria" en la tabla de juegos y crear una relación entre estas dos tablas (esto asumiendo que un juego solo puede estar asociado a una categoría a la vez).


Título: Re: Sistema de Categorias, Paginas, Comentarios y Starratings?
Publicado por: z3nth10n en 6 Abril 2013, 19:49 pm
Perdón por no hablar, pero ya tengo muchisimas cosas hechas. Luego las muestro.  :silbar:


Título: Re: Sistema de Categorias, Paginas, Comentarios y Starratings?
Publicado por: z3nth10n en 13 Abril 2013, 20:23 pm
Llevo 1 semana y pico trabajando en esto... Ahora necesito convertirlo a SMF alguien me ayuda? ;)


Título: Re: Sistema de Categorias, Paginas, Comentarios y Starratings?
Publicado por: Carloswaldo en 13 Abril 2013, 21:23 pm
¿Convertir qué en SMF?


Título: Re: Sistema de Categorias, Paginas, Comentarios y Starratings?
Publicado por: z3nth10n en 13 Abril 2013, 21:37 pm
Pues las funciones de BD con SmcFunc

http://www.simplemachines.org/community/index.php?topic=501731.0

Igualmente, ahí postee la ayuda, pero si me pueden ayudar por aquí, me estuve leyendo todos los manuales de MySQL de SMF, pero nada ;(

PD: Me podrias dar soporte por Skype, si no te importa claro. ;)



El file: http://pastebin.com/Vhr7uFVM