Respuestas

Cuando un enlace no funcione por favor repórtalo con el botón de alerta a la derecha del mismo para que un moderador pueda revisarlo

Agrega el libro a tu biblioteca con la estrella que aparece arriba de la portada, de esa forma te llegará una notificación cuando alguien cargue un enlace de descarga

Ingresa a la guía de usuarios http://www.misbooks.com.ar/guia_de_usuario.php sección Archivos y Descargas -> Descarga de Archivos para conocer la forma de descargar archivos.


Consultas Almacenadas

Usuarios Libros Sin Puntaje

Filas 55,613
Fecha 27/11/2014 01:35 a.m.

Filas 54,811
Fecha 22/12/2014 11:07 a.m.

Filas 54,607
Fecha 15/01/2015 10:32 a.m.

Filas 25,895
Fecha 04/05/2015 19:25 p.m.

Buenas prácticas

- Utilizar comillas simples siempre que sea posible

- Utilizar MySQL Workbench para el diseño de la base de datos


- Utilizar output buffering para mostrar el contenido de la página recién cuando esté todo cargado

      <?php ob_start(); ?>
      <?php ob_end_flush(); ?>


- Utilizar ",$variable," para concatenar strings


- Utilizar lastInsertId para obtener el id del último registro insertado

      $last_id = $pdo->lastInsertId();


- Utilizar rowCount para obtener la cantidad de filas de la consulta
      $cant = $pdo->rowCount();

Novedades

Funcionalidades



Diseño


Social LogIn

Google

id: 758810723118-stlq7jql8mehgm4fktpf1a1a50n4d1h4.apps.googleusercontent.com
secret: aMmU4r9NqyH_D4f9I4jhHsGL
uri: https://www.misbooks.com.ar/oauth2callback


Facebook

id: 1507898522772631
secret: 4199f6b717f51bfc7455cce4c8199161

Twitter

key: GjBVyXaLkyqq5cB1k5vWH1lUL
secret: jpAd9t95VE9McQszmdKdA2CoJnBvCh35EeFP17wk2z9q3mGR1P

Correcciones Base

Volcar a otro libro
SELECT FROM Usuarios_Libros WHERE ulilib_id = 15703 AND  uliusu_id IN (SELECT uliusu_id FROM Usuarios_Libros WHERE ulilib_id = 18055)

UPDATE Usuarios_Libros SET ulilib_id = 9176 WHERE ulilib_id = 7354;
UPDATE Comentarios SET lib_id = 9176 WHERE lib_id = 7354;
UPDATE Archivos_Libros SET lib_id = 9176 WHERE lib_id = 7354;
UPDATE LibrosExcluidos_Usuarios SET lexlib_id = 9176 WHERE lexlib_id = 7354;
UPDATE Notificaciones SET notlib_id = 9176 WHERE notlib_id = 7354;
DELETE FROM Libros WHERE lib_id = 7354;

Volcar a otro autor
UPDATE Autores_Libros SET aliaut_id = 26 WHERE aliaut_id = 4133;

Consultar la url de las imagenes de libros que están mal
SELECT * FROM Libros WHERE lib_imagen NOT LIKE '%img/portadas%';

Consultar la url de las imagenes de usuarios que están mal
SELECT FROM Usuarios WHERE usu_imagen NOT LIKE '%img/usuarios%' AND usu_imagen NOT LIKE '%img/default.jpg%';
SELECT FROM Usuarios WHERE usu_imagen NOT LIKE '%img/usuarios%' AND usu_imagen NOT LIKE '%img/portadas/default.jpg%';

Libros sin Géneros
SELECT FROM Libros WHERE lib_id NOT IN (SELECT glilib_id FROM Generos_Libros);

Libros sin Autores
SELECT FROM Libros WHERE lib_id NOT IN (SELECT alilib_id FROM Autores_Libros);

Usuarios sin Imagen (Setar Default)
UPDATE Usuarios SET usu_imagen = 'img/portadas/default.jpg' WHERE usu_id = 2501;

Revisión de Autores Modificados
SELECT * FROM Autores WHERE autusu_mod IS NOT NULL AND aut_fecha_mod > '2015-01-10 21:48:26';

Revisión de Comentarios 
SELECT com_id, lib_id, usu_id, com_texto FROM Comentarios
WHERE (com_texto LIKE '%enlace%' OR com_texto LIKE  '%descarg%' OR com_texto LIKE '%link%' OR com_texto LIKE '%error%' OR com_texto LIKE '%vacio%' OR  com_texto LIKE  '%baja%' OR com_texto LIKE '%alguien%' OR com_texto LIKE '%subir%' OR com_texto LIKE '%epub%' OR  com_texto LIKE '%book%' OR com_texto LIKE '%mail%' OR com_texto LIKE '%correo%' OR com_texto LIKE '%funciona%' OR com_texto LIKE '%gracias%' OR com_texto LIKE '%poner%' OR com_texto LIKE '%agregar%' OR com_texto LIKE '%report%' OR com_texto LIKE '%formato%' OR com_texto LIKE '%disponible%'AND com_id > 2747 ORDER BY com_id DESC;
Usuarios revisados:
1° revisión: men_id >= 16078 AND men_id <= 16396

Comentarios sin Libro
SELECT FROM Comentarios WHERE lib_id NOT IN (SELECT lib_id FROM Libros);

Comentarios Duplicados
SELECT com_id, lib_id, usu_id, c.com_texto FROM Comentarios AS c
INNER JOIN (SELECTcom_texto FROM Comentarios
GROUP BY com_texto HAVING count(com_id) > 1) dup ON c.com_texto = dup.com_texto ORDER BY com_texto;

Comentarios Reportados
SELECT com_id, com_texto, com_fecha, crulib_id, cruusu_id, cru_fecha FROM ComentariosReportados_Usuarios INNER JOIN Comentarios ON (crucom_id = com_id) WHERE cru_estado = 1 ORDER BY com_fecha DESC;

Opiniones Duplicadas
SELECT opi_id, opient_id, opiusu_id, o.opi_texto FROM Opiniones AS o
INNER JOIN (SELECT opi_texto FROM Opiniones;

GROUP BY opi_texto HAVING count(opi_id) > 1) dup ON  o.opi_texto = dup.opi_texto ORDER BY opi_texto;

Revisión de Estados de Lectura
SELECT uliusu_id, COUNT(uliusu_id) AS cant FROMUsuarios_Libros WHERE uliedl_id = 2 AND  uli_fecha <= '2015-01-15 02:01:18' GROUP BY uliusu_id ORDER BY cant DESC;
Usuarios revisados:
1° revisión: uli_fecha <= '2015-01-15 02:01:18'

Errores Base de Datos

Error al tratar de recordar el usuario desde la cookie

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'eususu_id' cannot be null' in /home/u818368861/public_html/php_lib/remember.lib.php:35 Stack trace: #0 /home/u818368861/public_html/php_lib/remember.lib.php(35): PDOStatement->execute() #1 /home/u818368861/public_html/index.php(5): include('/home/u81836886...') #2 {main} thrown in /home/u818368861/public_html/php_lib/remember.lib.php on line 35

Error al tratar de ingresar una colección que ya está ingresada pero con mayúsculas o acentos distintos

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'El círculo' for key 'col_descrip_UNIQUE'' in /home/u818368861/public_html/modificacion_libro.php:339 Stack trace: #0 /home/u818368861/public_html/modificacion_libro.php(339): PDOStatement->execute() #1 {main} thrown in /home/u818368861/public_html/modificacion_libro.php on line 339

Estadísticas

Usuarios con más libros en su biblioteca:
SELECT uliusu_id, usu_nombre, COUNT(uliusu_id) AS cant FROM Usuarios_Libros INNER JOIN Usuarios ON (uliusu_id = usu_id) WHERE uliedl_id = 1 OR uliedl_id = 2 OR uliedl_id = 3 GROUP BY uliusu_id ORDER BY cant DESC

Libros en la biblioteca de los usuarios:
SELECT ulilib_id, lib_titulo, COUNT(ulilib_id) AS cant FROM Usuarios_Libros INNER JOIN Libros ON (ulilib_id = lib_id) GROUP BY ulilib_id ORDER BY cant DESC

Ranking de usuarios por cantidad de libros subidos:
SELECT libusu_id, usu_nombre, COUNT(libusu_id) AS cant FROM Libros INNER JOIN Usuarios ON (libusu_id = usu_id) GROUP BY libusu_id ORDER BY cant DESC

Ranking de usuarios que sigo por cantidad de libros subidos:

SELECT libusu_id, usu_nombre, COUNT(libusu_id) AS cant FROM Libros INNER JOIN Usuarios ON (libusu_id = usu_id) WHERE usu_id NOT IN(SELECT DISTINCT uususu_id_dos FROM Usuarios_Usuarios WHERE uususu_id_uno = 2) GROUP BY libusu_id ORDER BY cant DESC

Ranking de usuarios por cantidad de archivos subidos:
SELECT usu_id, usu_nombre, COUNT(arc_id) AS cant FROM Usuarios INNER JOIN Archivos_Libros ON (usu_id = arc_usu) GROUP BY usu_nombre ORDER BY cant DESC

Ranking de usuarios que sigo por cantidad de archivos subidos:
SELECT usu_id, usu_nombre, COUNT(arc_id) AS cant FROM Usuarios INNER JOIN Archivos_Libros ON (usu_id = arc_usu) WHERE usu_id NOT IN(SELECT DISTINCT uususu_id_dos FROM Usuarios_Usuarios WHERE uususu_id_uno = 2) GROUP BY usu_nombre ORDER BY cant DESC

Cantidad de libros no modificados y modificados:
SELECT (SELECT COUNT(lib_id) FROM Libros WHERE lib_fecmod IS NULL AND lib_id <= 6160) AS No_Mod, (SELECT COUNT(lib_fecmod) FROM Libros WHERE lib_fecmod IS NOT NULL AND lib_id <= 6160) AS Si_Mod

Libros en mi biblioteca agregados por otro usuario:
SELECT * FROM Libros INNER JOIN Usuarios_Libros ON (lib_id = ulilib_id) AND uliusu_id = 2 AND libusu_id <> 2 AND libusu_id <> 1

Archivos descargados:
SELECT DATE_FORMAT(aus_fecha,'%m-%d-%Y') AS fecha, COUNT(*) AS cant FROM Archivos_Usuarios GROUP BY MONTH(aus_fecha), DAY(aus_fecha)

Búsquedas realizdas:
SELECT DATE_FORMAT(bus_fecha,'%m-%d-%Y') AS fecha, COUNT(*) AS cant FROM Busquedas_Usuarios GROUP BY MONTH(bus_fecha), DAY(bus_fecha)

Usuarios nuevos:
SELECT DATE_FORMAT(usu_fecalta,'%m-%d-%Y') AS fecha, COUNT(*) AS  cant FROM Usuarios GROUP BY YEAR(usu_fecalta), MONTH(usu_fecalta), DAY(usu_fecalta)  ORDER BY YEAR(usu_fecalta) DESCMONTH(usu_fecalta) DESCDAY(usu_fecalta) DESC

Libros agregados a una biblioteca:
SELECT DATE_FORMAT(uli_fecha,'%m-%d-%Y') AS fecha, COUNT(*) AS cant FROM Usuarios_Libros GROUP BY YEAR(uli_fecha), MONTH(uli_fecha), DAY(uli_fecha)  ORDER BY YEAR(uli_fecha) DESCMONTH(uli_fecha) DESCDAY(uli_fecha) DESC

Links de descarga agregados:
SELECT DATE_FORMAT(arc_fecha,'%m-%d-%Y') AS fecha, COUNT(*) AS cant FROM Archivos_Libros GROUP BY YEAR(arc_fecha), MONTH(arc_fecha), DAY(arc_fecha)  ORDER BY YEAR(arc_fechaDESCMONTH(arc_fechaDESCDAY(arc_fechaDESC

Usuarios en mensaje:
SELECT meuusu_id FROM MensajesEntrada_Usuarios WHERE meumen_id = 6863;
SELECT msuusu_id FROM MensajesSalida_Usuarios WHERE msumen_id = 6863;


SELECT * FROM Usuarios WHERE usu_id IN (2442, 607);

Archivos eliminados por un usuario:

SELECT arc_id, arc_link, arc_fecha_baja, usu_id, usu_nombre FROM Archivos_Libros INNER JOIN Libros ON(Archivos_Libros.lib_id = Libros.lib_id) INNER JOIN Autores_Libros ON (Libros.lib_id = alilib_id) INNER JOIN Usuarios ON(arc_usu_baja = usu_id) WHERE aliaut_id = 752 AND arc_fecha_baja IS NOT NULL ORDER BY arc_fecha_baja DESC

Gestión de Tareas

ERRORES

listas.php - cuando se edita o elimina una lista deja de funcionar el combo para cargar listas

buscar_ajax.php - al buscar un libro con varios autores aparecen resultados duplicados

alta_libro.php, modificacion_libro.php - cuando se crea o modifica un libro y se ingresa el nombre de una colección ya existente los junta con los otros (diferenciar colecciones por autor)


autor.php y revisar colección.php - corregir el salto de línea de las portadas al seleccionar un estado de lectura

estadistica-actividad-historica-usuarios.php - corregir consulta


MEJORAS

catalogo.php - nuevo botón Booktrailers que carga una sección con una lista de los trailers de los libros (ver mockup)

catalogo.php - agregar un filtro Letra a la pestaña Libros

catalogo.php - agregar botones de lista y detalle en la pestaña Autores (ver mockup)

guia_de_usuario.php - armar la lista de secciones al estilo Librote y actualizar las imagenes


autor.php, catalogo.php - agregar un botón para marcar un autor como favorito

perfil.php - mostrar los autores favoritos del usuario

nuevousuario.php - cambiar formulario a ajax, cambiar nombre por alta_usuario.php

modificacion_usuario.php, modificacion_contrasena.php- cambiar formulario a ajax, y que mantenga abierta la sesión del usuario al realizar los cambios

contenido_libro.php - agregar títulos y portadas alternativas, y la posibilidad de proponer una portada como principal. Poder ver todas las portadas,partiendo de la principal, con flechitas debajo de la misma

cargar_panel_admin.php - agregar notificaciones de comentarios reportados

configuracion.php - parametrizar si se muestran desplegados los paneles de filtros del catálogo (default =1) y la biblioteca (default =0)

todas las páginas con loading - cambiar los gifs por canvas http://heartcode.robertpataki.com/canvasloader/ o css3 http://www.cssportal.com/css3-preloaders/

alta_libro.php - autocomplete para los campos Título, Autor y Colección

mensajes.php y foro.php - ordernamiento por columnas seleccionando las mismas (2 veces para cambiar entre desc y asc)


titulo.php - recomendar un libro a un usuario enviandole una notificacion con un botón "Recomendar"
notificaciones.php - agregar las siguientes notificaciones:
11- Libro recomendado por otro usuario

titulo.php, alta_libro.php, buscar.php - fecha de publicación


encuestas.php - crear encuestas para recolectar estadísticas de los usuarios

login.php, topbar.php - agregar login con facebook, twitter y google+