Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Limitar la cantidad de registros por campo

Estas en el tema de Limitar la cantidad de registros por campo en el foro de PHP en Foros del Web. Hola, estoy haciendo un sistema de registro y necesito insertar todos los campos, pero limitando al campo 'dia', es decir, registrar 3 días solamente. Con ...
  #1 (permalink)  
Antiguo 10/03/2016, 15:45
k90
 
Fecha de Ingreso: marzo-2016
Mensajes: 7
Antigüedad: 8 años, 1 mes
Puntos: 0
Limitar la cantidad de registros por campo

Hola, estoy haciendo un sistema de registro y necesito insertar todos los campos, pero limitando al campo 'dia', es decir, registrar 3 días solamente. Con este código puedo realizar muchos registros de un mismo 'día', pero al insertar un cuarto día distinto me hace un registro, y necesito que al agregar ese cuarto día el sistema diga 'Ha alcanzado el limite de registros hoy'. Ayuda please..

<?php
include("conexion.php");

if(isset($_POST['fecha']) && !empty($_POST['fecha']) &&
isset($_POST['unidad']) && !empty($_POST['unidad']) &&
isset($_POST['fundo']) && !empty($_POST['fundo']) &&
isset($_POST['dia']) && !empty($_POST['dia']) &&
isset($_POST['responsable_user']) && !empty($_POST['responsable_user']) &&
isset($_POST['pension_rsocial']) && !empty($_POST['pension_rsocial']) &&
isset($_POST['trabajador']) && !empty($_POST['trabajador']))
{
if(isset($_POST['opcion']) && !empty($_POST['opcion'])){
$value = '';
if(isset($_POST['opcion'])){
$value = implode (' | ', $_POST['opcion']);
}

$conn = mysql_connect($conexion3,$user3,$pass3)or die("Problema de conexion con el servidor, intente nuevamente");
mysql_select_db($db3,$conn)or die("Problema de conexion con la base de datos, intente nuevamente");

$verifica_cant = mysql_query("SELECT DISTINCT dia FROM tb_encabezado");

if(mysql_num_rows($verifica_cant)<=3){

mysql_query("INSERT INTO tb_encabezado (fecha, unidad, fundo, dia, responsable_user, pension_rsocial, trabajador, opcion) VALUES ('$_POST[fecha]','$_POST[unidad]', '$_POST[fundo]', '$_POST[dia]', '$_POST[responsable_user]', '$_POST[pension_rsocial]','$_POST[trabajador]','$value')");
} else {
echo "<script>alert('Ha alcanzado el limite de registros hoy');</script>";
}
}
}
  #2 (permalink)  
Antiguo 10/03/2016, 17:08
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: Limitar la cantidad de registros por campo

quieres solo tener 3 registros al dia o solo permitir registros por un lapso de 3 dias?
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #3 (permalink)  
Antiguo 10/03/2016, 19:35
k90
 
Fecha de Ingreso: marzo-2016
Mensajes: 7
Antigüedad: 8 años, 1 mes
Puntos: 0
Respuesta: Limitar la cantidad de registros por campo

Tener 3 registros de ese día que el usuario ingrese
  #4 (permalink)  
Antiguo 10/03/2016, 19:37
k90
 
Fecha de Ingreso: marzo-2016
Mensajes: 7
Antigüedad: 8 años, 1 mes
Puntos: 0
Respuesta: Limitar la cantidad de registros por campo

Cita:
Iniciado por petit89 Ver Mensaje
quieres solo tener 3 registros al dia o solo permitir registros por un lapso de 3 dias?
Tener 3 registros de ese 'día' que ingrese el usuario
  #5 (permalink)  
Antiguo 10/03/2016, 19:54
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Limitar la cantidad de registros por campo

Para empezar tu condicional está mal, tienes el operador "<=", que pasa si el numero es igual a 3? Pues le dejas ingresar un cuarto. Debería ser "<" unicamente.

La consulta no te está ayudando en nada,
Código SQL:
Ver original
  1. SELECT id FROM tabla WHERE dia = CURRENT_DATE

Puede ser algo así
  #6 (permalink)  
Antiguo 10/03/2016, 20:19
k90
 
Fecha de Ingreso: marzo-2016
Mensajes: 7
Antigüedad: 8 años, 1 mes
Puntos: 0
Respuesta: Limitar la cantidad de registros por campo

Cita:
Iniciado por rodocoyote15 Ver Mensaje
Para empezar tu condicional está mal, tienes el operador "<=", que pasa si el numero es igual a 3? Pues le dejas ingresar un cuarto. Debería ser "<" unicamente.

La consulta no te está ayudando en nada,
Código SQL:
Ver original
  1. SELECT id FROM tabla WHERE dia = CURRENT_DATE

Puede ser algo así
Sé que tengo un problema en la consulta, pero no necesito que sean registros del día actual, sino del 'día' que ingresa el usuario por el campo de texto.
  #7 (permalink)  
Antiguo 10/03/2016, 20:24
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Limitar la cantidad de registros por campo

Código SQL:
Ver original
  1. SELECT COUNT(id) FROM tb_encabezado WHERE dia = '$fecha'
.

Entonces es así
  #8 (permalink)  
Antiguo 10/03/2016, 20:34
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: Limitar la cantidad de registros por campo

trata asi:


Código PHP:
$verifica_cant mysql_query("SELECT dia FROM tb_encabezado WERE dia='$_POST['dia']'");

if(
mysql_num_rows($verifica_cant)<3){

mysql_query("INSERT INTO tb_encabezado (fecha, unidad, fundo, dia, responsable_user, pension_rsocial, trabajador, opcion) VALUES ('$_POST[fecha]','$_POST[unidad]', '$_POST[fundo]', '$_POST[dia]', '$_POST[responsable_user]', '$_POST[pension_rsocial]','$_POST[trabajador]','$value')");
} else {
echo 
"<script>alert('Ha alcanzado el limite de registros hoy');</script>";

__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #9 (permalink)  
Antiguo 10/03/2016, 21:06
k90
 
Fecha de Ingreso: marzo-2016
Mensajes: 7
Antigüedad: 8 años, 1 mes
Puntos: 0
Respuesta: Limitar la cantidad de registros por campo

Ya lo he solucionado, muchas gracias!

Etiquetas: campo, cantidad, fecha, limitar, mysql, registro, registros, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:17.