ayuda con consulta a base de datos

Iniciado por etxebe, 26 Enero 2018, 09:17 AM

0 Miembros y 1 Visitante están viendo este tema.

etxebe

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

Orubatosu

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
"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998

etxebe

#2
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.

M4rduK

No se cuanto durara una jornada pero puedes operar dias a las fechas. Con un campo de fecha_iniciojornada podrias...
CitarWHERE fecha_iniciojornada+7 < sysdate;
(por semana)
:huh:

El presente pasa, el espiritu transciende. Sin vida no habria maquina, sin maquina cual seria la vida?

etxebe

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