Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: etxebe en 26 Enero 2018, 09:17 am



Título: ayuda con consulta a base de datos
Publicado por: etxebe en 26 Enero 2018, 09:17 am
Hola buenos dias

1 usuario solo puede hacer una apuesta por jornada
2 no se podra repetir ningun equipo por jornada

aqui tengo la consulta del numero 2

$jornada = $_POST['da'];                           
$equipo = $_POST['equip'];
$usuario = $_SESSION['user'];
$compa = $_POST['compi'];
$año = date("Y");

$sql="SELECT * FROM euroleague WHERE jornada='$jornada' AND id_equipo = '$equipo'  and año='2018'  and competicion = '$compa'" ;
            $consulta=mysqli_query($conexion,$sql) or die(mysqli_error($conexion));
            $resultado = mysqli_num_rows($consulta);   
            $fila  = mysqli_fetch_assoc($consulta);
           

          if ($resultado==1)
          {
           
                   
                   header("Location:error.php");
          }
            else
           {
                    $sql = "INSERT INTO euroleague (id_jornada,id_usuario,jornada,id_equipo,competicion,año) VALUES(Null,'$usuario','$jornada','$equipo','$compa','$año')";
               $res = mysqli_query($conexion,$sql) or die(mysqli_error($conexion)); 
                    header("Location:ok.php");
           }                                         
         

?>


Ahora mi problema es impedir que un usuario no pueda  hacer mas de una apuesta por jornada.

espero podais aydarme

muchas gracias


Título: Re: ayuda con consulta a base de datos
Publicado por: Orubatosu en 29 Enero 2018, 20:47 pm
Hay varias formas de hacerlo, como usar cookies, pero no lo recomiendo. En su lugar habilita un campo de fecha para cada usuario donde pones la fecha actual. Al hacer una nueva apuesta comprueba que la última fecha no coincide con la actual, y si es así rechaza la apuesta. Otra opción es hacer una tabla con booleanos relacionada con los clientes, pero debería de limpiarse al final de la jornada. Ocupa menos, pero es mas trabajo


Título: Re: ayuda con consulta a base de datos
Publicado por: etxebe en 1 Febrero 2018, 11:00 am
muchas gracias.
Lo de la fecha no lo acabo de entender. porque puede haber hecho la apuesta hace 3 dias y hoy volver a entrar y hacer otra apuesta en la misma jornada y las fechas no coincidirian y no serviria,no ?pq mientras no llega la fecha del evento la apuesta esta activa

lo que estoy usando es esta consulta

$sql="SELECT * FROM euroleague WHERE jornada='$jornada' AND id_usuario = '$usuario'  and año='2018'  and competicion = '$compa'" ;
$consulta=mysqli_query($conexion,$sql) or die(mysqli_error($conexion));
$resultado = mysqli_num_rows($consulta);     $fila  = mysqli_fetch_assoc($consulta);

es decir miro la jornada, el usuario,el año y la competicion y si obtengo resultado haria un update y si no hay resultado hago el insert.


Título: Re: ayuda con consulta a base de datos
Publicado por: M4rduK en 1 Febrero 2018, 12:08 pm
No se cuanto durara una jornada pero puedes operar dias a las fechas. Con un campo de fecha_iniciojornada podrias...
 
Citar
WHERE fecha_iniciojornada+7 < sysdate;
(por semana)
 :huh:



Título: Re: ayuda con consulta a base de datos
Publicado por: etxebe en 1 Febrero 2018, 23:35 pm
http://prntscr.com/i8vzn7

Como se ve en el calendario hay un dia y una hora del evento, a la que pasa esa hora el evento desaparece y ya no pueden apostar.
El problema esta que mientras no llegue esa hora un mismo usario puede hacer las apuestas que quiera mientras no apueste por un equipo ya apostado esa jornada.
lo que yo quiero es que en vez de insertar, si ese usario tiene ya una apuesta pues que se le modifique.

un saludete