Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] limitar registros

Estas en el tema de limitar registros en el foro de PHP en Foros del Web. hola amigos tengo un pequeño problema estoy haciendo un insert pero antes de hacerlo tengo que consultar los registros osea me explico máximo de registros ...
  #1 (permalink)  
Antiguo 11/02/2017, 15:36
Avatar de aviweb2015  
Fecha de Ingreso: abril-2016
Ubicación: venezuela
Mensajes: 215
Antigüedad: 8 años, 1 mes
Puntos: 1
limitar registros

hola amigos tengo un pequeño problema estoy haciendo un insert pero antes de hacerlo tengo que consultar los registros osea me explico máximo de registros diarios 15 si llega al limite de registros diario debe mandar el mjs de Se ha superado el limite de registros diarios, intente con otra Fecha!

Código PHP:
Ver original
  1. <?php
  2. include("conexion.php");
  3.  
  4. if (isset ($_POST['guardar'])){
  5. $cedula=$_REQUEST['cedula'];
  6. $idtipodecita=$_REQUEST['idtipodecita'];
  7. $fecha_cita=$_REQUEST['fecha_cita'];
  8. $estado=$_REQUEST['estado'];
  9. $telefono=$_REQUEST['telefono'];
  10.  
  11.  
  12. $fecha_cita = date("j F, Y");
  13. $sql="SELECT COUNT(*) AS 'fecha_cita' FROM cita_previa WHERE fecha_cita='$fecha_cita'";
  14. $res=mysql_query($sql,$link) or die ( mysql_error());
  15. $nrows=mysql_num_rows($res);
  16. if($nrows <=15)
  17.  
  18. {
  19.  
  20. if (mysql_query("INSERT INTO cita_previa (cedula,idtipodecita,fecha_cita,estado,telefono) VALUES
  21. ('$cedula','$idtipodecita','$fecha_cita','$estado','$telefono')",$link));
  22.  
  23. echo "<script>alert ('Cita Previa registrada, pronto lo contactaremos!');</script>
  24. <META HTTP-EQUIV='REFRESH' CONTENT=0;URL=http:citaprevia.php>";
  25.           }
  26.  
  27. else echo "<script>alert ('Se ha superado el limite de registros diarios, intente con otra Fecha!');</script>
  28. <META HTTP-EQUIV='REFRESH' CONTENT=0;URL=http:citaprevia.php>";
  29.           }
  30.  
  31.  
  32. ?>

gracias de ante mano
__________________
yoclens avilan
  #2 (permalink)  
Antiguo 11/02/2017, 15:52
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: limitar registros

Lo que tienes que hacer es una consulta con COUNT(*) del dia actual, si ya hay 15 registros pues devuelves el mensaje de que ya no entra... o es mas, deberias hacer esta consulta antes de hacer llenar al usuario el formulario.. si ya hay 15 registros, que aparezca un mensaje del limite alcanzado en vez del formulario, de lo contrario que se muestre el form....

Primero tienes esta variable para crear la fecha actual(del servidor), tu fecha guardada tiene el mismo formato?
Código PHP:
Ver original
  1. $fecha_cita = date("j F, Y");
11 February, 2017

puedes ponerlo asi:
Código PHP:
Ver original
  1. $cita_x_dia = 15;
  2. $sql="SELECT COUNT(*)  FROM cita_previa WHERE fecha_cita='$fecha_cita'";
  3. $res=mysql_query($sql,$link) or die ( mysql_error()); //aqui ya te devuelve un numero
  4.  
  5. if($res <= $cita_x_dia)........................
__________________
█ 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 11/02/2017, 16:09
Avatar de aviweb2015  
Fecha de Ingreso: abril-2016
Ubicación: venezuela
Mensajes: 215
Antigüedad: 8 años, 1 mes
Puntos: 1
Respuesta: limitar registros

si ese es el formato que utilizo para guardar lo he puesto como dices y no hace nada
en mi bd guarda ese formato

Código PHP:
Ver original
  1. $fecha_cita = date("j F, Y");
  2.  
  3. 11 February, 2017
__________________
yoclens avilan
  #4 (permalink)  
Antiguo 11/02/2017, 23:06
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 9 años, 9 meses
Puntos: 30
Respuesta: limitar registros

Y porqué no almacenas el n°dd registros que se realizan al dia en un archivo ini? Solo debrias de sumar 1 en ese registro despues de haber rellenado un formulario.

Asi te olvidas de ralizar consultas innecesarias a la base de datos y que suelen tomar un tiempo. En cambio, hacer una consulta a un archivo ini pues es mucho mas rapido.
  #5 (permalink)  
Antiguo 12/02/2017, 00:19
Avatar de aviweb2015  
Fecha de Ingreso: abril-2016
Ubicación: venezuela
Mensajes: 215
Antigüedad: 8 años, 1 mes
Puntos: 1
Respuesta: limitar registros

Cita:
Iniciado por Triby2 Ver Mensaje
Y porqué no almacenas el n°dd registros que se realizan al dia en un archivo ini? Solo debrias de sumar 1 en ese registro despues de haber rellenado un formulario.

Asi te olvidas de ralizar consultas innecesarias a la base de datos y que suelen tomar un tiempo. En cambio, hacer una consulta a un archivo ini pues es mucho mas rapido.
osea en un día solo pueden haber registradas 15 citas nada mas si intentas registra la cita numero 16 en ese mismo dia no te puede dejar registrarla porque se alcanzo el limite diario deberías intentar con otra fecha si tiene un ejemplo te lo agradecería, gracias
__________________
yoclens avilan
  #6 (permalink)  
Antiguo 12/02/2017, 00:37
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 9 años, 9 meses
Puntos: 30
Respuesta: limitar registros

Cita:
Iniciado por aviweb2015 Ver Mensaje
osea en un día solo pueden haber registradas 15 citas nada mas si intentas registra la cita numero 16 en ese mismo dia no te puede dejar registrarla porque se alcanzo el limite diario deberías intentar con otra fecha si tiene un ejemplo te lo agradecería, gracias
Si entendí, para que implementes lo que te propongo, sigue este tutorial de php

http://php.net/manual/es/function.parse-ini-file.php

Ahí podrás introducir y sacar datos, con lo cual te ahorrarás hacer la consulta a la base de datos solo para controlar los registros diarios.

Simplemente sumas 1 después de realizar el registro y lo guardas en el archivo y cuando alguien quiera acceder al formulario, primero consultas el archivo y si ya estan los 15, pues le muestras el mensajito.

Un saludo
  #7 (permalink)  
Antiguo 12/02/2017, 12:33
Avatar de aviweb2015  
Fecha de Ingreso: abril-2016
Ubicación: venezuela
Mensajes: 215
Antigüedad: 8 años, 1 mes
Puntos: 1
Respuesta: limitar registros

nah no lo entendi
__________________
yoclens avilan
  #8 (permalink)  
Antiguo 12/02/2017, 13:32
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: limitar registros

No entiendo la dificultad, como dice petit89 usar count con el criterio hoy día y listo

q = SELECT COUNT(*) tabla WHERE fecha=hoy

luego:

if(q >= 15){
no
}else{
si
}

con eso debería bastar...
  #9 (permalink)  
Antiguo 12/02/2017, 15:47
Avatar de aviweb2015  
Fecha de Ingreso: abril-2016
Ubicación: venezuela
Mensajes: 215
Antigüedad: 8 años, 1 mes
Puntos: 1
Respuesta: limitar registros

Cita:
Iniciado por alvaro_trewhela Ver Mensaje
No entiendo la dificultad, como dice petit89 usar count con el criterio hoy día y listo

q = SELECT COUNT(*) tabla WHERE fecha=hoy

luego:

if(q >= 15){
no
}else{
si
}

con eso debería bastar...


actualente tengo esto pero solo me hace los 15 registros y si intento con otro día igual no me registra y con el mismo dia no me da el mjs que se a superado el limite


Código PHP:
Ver original
  1. <?php
  2. include("conexion.php");
  3.  
  4. if (isset ($_POST['guardar'])){
  5. $cedula=$_REQUEST['cedula'];
  6. $idtipodecita=$_REQUEST['idtipodecita'];
  7. $fecha_cita=date("y-m-d");
  8. $estado=$_REQUEST['estado'];
  9. $telefono=$_REQUEST['telefono'];
  10.  
  11.  
  12. $cita_x_dia = 15;
  13. $sql="SELECT COUNT(*)  FROM cita_previa WHERE fecha_cita='$fecha_cita'";
  14. $res=mysql_query($sql,$link) or die ( mysql_error());
  15.  
  16. if($res <= $cita_x_dia)
  17. {
  18.  
  19.  
  20. if (mysql_query("INSERT INTO cita_previa (cedula,idtipodecita,fecha_cita,estado,telefono) VALUES
  21. ('$cedula','$idtipodecita','$fecha_cita','$estado','$telefono')",$link));
  22.  
  23. echo "<script>alert ('Cita Previa registrada, pronto lo contactaremos!');</script>
  24. <META HTTP-EQUIV='REFRESH' CONTENT=0;URL=http:citaprevia.php>";
  25.           }
  26.  
  27. else echo "<script>alert ('Se ha superado el limite de registros diarios, para esta fecha:.'$estado'.  intente con otra Fecha!');</script>
  28. <META HTTP-EQUIV='REFRESH' CONTENT=0;URL=http:citaprevia.php>";
  29.           }
  30.  
  31.  
  32. ?>
__________________
yoclens avilan
  #10 (permalink)  
Antiguo 12/02/2017, 16:16
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: limitar registros

CREO que el error debe ser este:

Si en tu BD lo tienes guardado en formato yyyy-mm-dd

entonces

$fecha_cita=date("y-m-d");

debería ser

$fecha_cita=date("Y-m-d");

Ve con eso...
  #11 (permalink)  
Antiguo 12/02/2017, 17:04
Avatar de aviweb2015  
Fecha de Ingreso: abril-2016
Ubicación: venezuela
Mensajes: 215
Antigüedad: 8 años, 1 mes
Puntos: 1
Respuesta: limitar registros

no hace nada esto si a sido un problema
__________________
yoclens avilan
  #12 (permalink)  
Antiguo 12/02/2017, 17:53
Avatar de aviweb2015  
Fecha de Ingreso: abril-2016
Ubicación: venezuela
Mensajes: 215
Antigüedad: 8 años, 1 mes
Puntos: 1
Respuesta: limitar registros

bueno gracias a todos por fin lo pude solucionar con ayuda de una amigo anexo el cod para quien lo necesite... y doy por cerrado el tema

Código PHP:
Ver original
  1. <?php
  2. include("conexion.php");
  3.  
  4. if (isset ($_POST['guardar'])){
  5. $cedula=$_REQUEST['cedula'];
  6. $idtipodecita=$_REQUEST['idtipodecita'];
  7. $fecha_cita=$_REQUEST['fecha_cita'];
  8. $estado=$_REQUEST['estado'];
  9. $telefono=$_REQUEST['telefono'];
  10.  
  11.  
  12.  
  13. $sql="SELECT COUNT(*) AS 'Registros' FROM cita_previa WHERE fecha_cita='$fecha_cita'";
  14. $res=mysql_query($sql,$link) or die ( mysql_error());
  15. $nrows=mysql_num_rows($res);
  16. list( $no_registros ) = mysql_fetch_array($res);
  17. if( $no_registros >= 2 ) {
  18.  
  19. echo "<script>alert ('Se ha superado el limite de registros diarios, intente con otra Fecha!');</script>
  20. <META HTTP-EQUIV='REFRESH' CONTENT=0;URL=http:citaprevia.php>";
  21.  
  22. die (' ');
  23. }
  24.  
  25. mysql_query("INSERT INTO cita_previa (cedula,idtipodecita,fecha_cita,estado,telefono) VALUES
  26. ('$cedula','$idtipodecita','$fecha_cita','$estado','$telefono')",$link);
  27.  
  28. echo "<script>alert ('Cita Previa registrada, pronto lo contactaremos!');</script>
  29. <META HTTP-EQUIV='REFRESH' CONTENT=0;URL=http:citaprevia.php>";
  30.           }
  31. ?>
__________________
yoclens avilan

Etiquetas: 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 04:44.