Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2014
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.68 KB | None | 0 0
  1. <?php
  2.  
  3.     // parametros de entrada
  4.     $minimo = $_GET['minimo'];
  5.     $maximo = $_GET['maximo'];
  6.     $extraer = $_GET['cantidad'];
  7.    
  8.     // minimo: numero minimo de la muestra
  9.     // maximo: numero maximo de la muestra
  10.     // extraer: cantidad de numeros a extraer
  11.     // resultado: arreglo donde guarda el resultado de la muestra
  12.     function muestra($minimo, $maximo, $extraer, &$resultado) {
  13.         $extraidos = array();
  14.  
  15.         // mientras la cantidad de extraidos sea menor a la candidad a extraer
  16.         while (sizeof($extraidos) < $extraer) {
  17.  
  18.             $aleatorio = rand($minimo, $maximo);
  19.  
  20.             // si no fue extraido anteriormente, lo agrego a la lista de extraidos
  21.             if (!in_array($aleatorio, $extraidos)) {
  22.                 $extraidos[] = array('id' => $aleatorio, 'numero' => '', 'nombre' => '');
  23.             }
  24.            
  25.         }
  26.         // retorna el resultado de la muestra
  27.         $resultado['resultado'] = $extraidos;
  28.     }
  29.  
  30.     // ejecuta una muestra segun los parametros de entrada
  31.     $resultado = array();
  32.     muestra($minimo, $maximo, $extraer, $resultado);
  33.  
  34.     // por cada numero que fue sorteado, busca la tarjeta y nombre asociado en la BD
  35.     include_once("db/conexion.php");
  36.     foreach ($resultado['resultado'] as $k => $v) {
  37.         $sql = "SELECT numero, nombre FROM tarjetas WHERE id=".$v['id'];
  38.         $result = pg_query($sql);
  39.         if ($rs = pg_fetch_array($result)) {
  40.             // da formato al numero de tarjeta xxxx xxxx xxxx xxxx
  41.             $n = $rs['numero'];
  42.             $numero = substr($n, 0, 4)." ".substr($n, 4, 4)." ".substr($n, 8, 4)." ".substr($n, 12, 4);
  43.  
  44.             // guarda el nombre y numero de tarjeta
  45.             $resultado['resultado'][$k]['numero'] = $numero;
  46.             $resultado['resultado'][$k]['nombre'] = $rs['nombre'];
  47.         }
  48.  
  49.     }
  50.     // imprime los resultados
  51.     echo json_encode($resultado);
  52. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement