Re: [PHP-ES] Consulta sobre php y mysql
[email protected] (Ricardo Vila) Wed, 14 Mar 2012 11:01:26 -0500
| Newsgroups | php.general.es |
|---|---|
| Message-ID | <CAM9wsNUo7QGPp=5eYceUeV=NkCnqupmgEGSvZCqrDE2KLwN1NA@mail.gmail.com> |
Bueno estoy usando innodb, el tema es que quiero ver como prevenir que un premio se entregue a dos personas. porque el proceso como lo mencione es: - veo si hay premios (una consulta a la bd) - genero un arreglo de 10 posiciones (el # de posiciones puede cambiar, solo a modo de ejemplo puse 10) - Si hay premios (en este caso se asume que solo queda 1 premio), lo agrego al arreglo teniendo : $arrpremio = array(0,0,0,1,0,0,0,0,0,0) - Luego obtengo un random de 0 a 9,(asumo que me manda 3) - Ese valor es el indice del arreglo, entonces obtengo su valor, es decir $gano = $arrpremio[3] ( y esto es igual a 1) - aca pregunto si valor es 1, gano si no que siga intentando - Entonces bajo este esquema, se puede dar que a dos usuarios jugando simultaneamente les muestre el premio. Agradezco de antemano sus respuestas Saludos, Ricardo Vila 2012/3/14 Ricardo Martinez <[email protected]> > Mmm, en mi opinión: > > entiendo que como motor estás usando MyIsam. En caso contrario > especificalo. > > Todas las consultas que dices que haces y acciones, deberías de hacerlas > todas la vez dentro de un > > try > { > sentencias > } > > Un saludo!!! > > > On Wed, Mar 14, 2012 at 12:14 AM, Ricardo Vila <[email protected]>wrote: > >> Buenas listeros, >> >> La presente es para consultarles respecto a como podría hacer para evitar >> que un registro se muestre igual a dos usuarios distintos, me explico con >> un ejemplo >> >> Tengo una tabla premios, con los campos idpremio, cantidad >> >> entonces como puedo prevenir que si tengo un registro que tenga en el >> campo >> cantidad = 1, y dos usuarios ingresan a la vez, el sistema lo que hace es >> ver si hay premios, en este caso, obtiene 1, luego genero un arreglo de 10 >> posiciones y coloco este id dentro, genero un random y luego obtengo un >> indice y con esto veo si gano o no, entonces, si dos usuarios estan a la >> vez ingresando, hay la posibilidad de que a ambos le salga que ganaron el >> premio cuando en realidad solo hay un premio. >> >> Como podría evitar este problema, estuve pensando en bloquear las tabla >> hasta que termine de jugar un usuario, pero eso tomaría tiempo por cada >> usuario, de ser así, sería factible usar colas, para poder procesar esta >> información >> >> agradezco de antemano su respuesta >> >> Saludos, >> Ricardo Vila >> > > > > -- > Ricardo > _______________________________________________ > IT Architect > website: http://www.pulsarinara.com >