Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

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
1
Puntos
1056
Visitas
3
Resp
Por eduaryein hace 68 meses
Principiante Sitio web
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
0
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:
UPDATE z_users SET posts=(posts+1) WHERE id=$iddeluser
lo 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
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)

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=$iddeluser
lo 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
Hola muchas gracias por sus ayuda
1
Puntos
Por eduaryein hace 68 meses
Principiante Sitio web
Compartir en facebook
Compartir en twitter
Compartir
Para comentar Inicia sesión o Registrate