Como puedo limitar al usuario que agregue un numero máximo de post
Hola Buenas como están, Me preguntaba como podría hacer para que el usuario solo pueda agregar un numero maximo de post, es decir yo quisiera que un usuario registrado ami pagina pueda agregar 3 o 4 post como máximo, si trata de agregar otro le muestre un mensaje que ya supero el numero de registros permitios.
Espero sus comentarios gracias
Espero sus comentarios gracias
Respuesta #1
Buenas,
tenes que crear una columna nueva en tu tabla de users, y de ahi hacer un contador que cada vez haga un insert haga un update que si es mayor o igual a 4 que no deje insertar mas y listo
tenes que crear una columna nueva en tu tabla de users, y de ahi hacer un contador que cada vez haga un insert haga un update que si es mayor o igual a 4 que no deje insertar mas y listo
0
Puntos
Puntos
Por capu98 hace 68 meses
Principiante
Respuesta #2
hola, exacto como dice el compañero, en la tabla users o z_users (o como la llames) agrega una nueva columna que se llame posts (por ejemplo) con valor predeterminado 0 (ningún post por defecto)
después donde haces los insert de los posts agregas un UPDATE a la tabla z_users:
después compruebas los posts que tiene agregados este usuario antes de dejarlo agregar otro:
salu2
después donde haces los insert de los posts agregas un UPDATE a la tabla z_users:
UPDATE z_users SET posts=(posts+1) WHERE id=$iddeluserlo que haces con posts=(posts+1) es sumar +1 a la cantidad que ya tienes en la base de datos :P
después compruebas los posts que tiene agregados este usuario antes de dejarlo agregar otro:
<?php //Comprobar numero de posts por id user function comprobar_posts_user($iduser){ global $conexion; $accion_nm="SELECT posts FROM z_users WHERE id=$iduser"; $consulta_nm=mysqli_query($conexion,$accion_nm); $datos_nm=mysqli_fetch_assoc($consulta_nm); $cantidad_nm=mysqli_num_rows($consulta_nm); return $datos_nm['posts']; mysqli_free_result($consulta_nm); } //Si tiene menos de 5 se inserta if(comprobar_posts_user($_SESSION['iduser']) < 5 ){ $accion_nm = "INSERT INTO posts (titulo, mensaje) VALUES (%s, %s)"; $consulta_nm = mysqli_query($conexion,$accion_nm) or die(mysqli_error()); } else echo 'Has llegado a tu máximo de posts'; ?>ahí tienes todo el proceso, solo tienes que adaptarlo a tu proyecto
salu2
1
Puntos
Puntos
Por alber hace 68 meses
Administrador
Respuesta #3
alber dijo: hola, exacto como dice el compañero, en la tabla users o z_users (o como la llames) agrega una nueva columna que se llame posts (por ejemplo) con valor predeterminado 0 (ningún post por defecto)Hola muchas gracias por sus ayuda
después donde haces los insert de los posts agregas un UPDATE a la tabla z_users:UPDATE z_users SET posts=(posts+1) WHERE id=$iddeluserlo que haces con posts=(posts+1) es sumar +1 a la cantidad que ya tienes en la base de datos :P
después compruebas los posts que tiene agregados este usuario antes de dejarlo agregar otro:<?php //Comprobar numero de posts por id user function comprobar_posts_user($iduser){ global $conexion; $accion_nm="SELECT posts FROM z_users WHERE id=$iduser"; $consulta_nm=mysqli_query($conexion,$accion_nm); $datos_nm=mysqli_fetch_assoc($consulta_nm); $cantidad_nm=mysqli_num_rows($consulta_nm); return $datos_nm['posts']; mysqli_free_result($consulta_nm); } //Si tiene menos de 5 se inserta if(comprobar_posts_user($_SESSION['iduser']) < 5 ){ $accion_nm = "INSERT INTO posts (titulo, mensaje) VALUES (%s, %s)"; $consulta_nm = mysqli_query($conexion,$accion_nm) or die(mysqli_error()); } else echo 'Has llegado a tu máximo de posts'; ?>ahí tienes todo el proceso, solo tienes que adaptarlo a tu proyecto
salu2