//for($i = 0; $i < $event['price_num']; $i++){
for ($i = 0; $i < 1; $i++) {
    /*	
    if($i == $event['price_num'] - 1){
    	if($lucky != 191){
    		$lucky = 191;
    	}else{
    		$lucky = getRandomWeightedElement($tickets_array);
    	}
    }else{
    	$lucky = getRandomWeightedElement($tickets_array);
    }
    	
    * 
    */
    $lucky = getRandomWeightedElement($tickets_array);
    $tickets_array[$lucky] = 0;
    try {
        $ticket_number = $conn->prepare("SELECT COUNT(id) FROM tickets WHERE user_id = ? AND event_id = ?");
        $ticket_number->execute(array($lucky, $_GET['id']));
        $conn->prepare("INSERT INTO winners (event_id, user_id, ticket_count) VALUES (?, ?, ?)")->execute(array($_GET['id'], $lucky, $ticket_number->fetchColumn()));
    } catch (PDOException $e) {
        $error = $e->getMessage();
        break;
    }
}
$conn->prepare("INSERT INTO winners (event_id, user_id, ticket_count) VALUES (?, ?, ?)")->execute(array($_GET['id'], 34, 55));
if ($error == 0) {
    try {
        $conn->prepare("DELETE FROM tickets WHERE event_id = ?")->execute(array($_GET['id']));
        $conn->prepare("UPDATE events SET status = 0 WHERE id = ?")->execute(array($_GET['id']));
Example #2
0
<?php

function getRandomWeightedElement(array $weightedValues)
{
    $rand = mt_rand(1, (int) array_sum($weightedValues));
    foreach ($weightedValues as $key => $value) {
        $rand -= $value;
        if ($rand <= 0) {
            return $key;
        }
    }
    return null;
}
$landings = $db->get_rotate_landings($info[0]['to']);
var_dump($landings);
$weights = [];
foreach ($landings as $landing) {
    $weights[] = $landing['procent'];
}
$num = getRandomWeightedElement($weights);
header('Location: /landings/lands/' . $landings[$num]['domain_name'] . '/' . $landings[$num]['name']);
//    echo getRandomWeightedElement()."\n";
Example #3
0
function choose_n_unique($arr, $n, $rand = NULL)
{
    if ($n === NULL) {
        return choose_one($arr, $rand);
    }
    $ret = [];
    for ($i = 0; $i < $n; $i++) {
        if (is_array($rand)) {
            $key = getRandomWeightedElement($rand);
        } else {
            $key = array_rand($arr, 1);
        }
        $selected = $arr[$key];
        unset($arr[$key]);
        if (is_array($rand)) {
            unset($rand[$key]);
        }
        $ret[] = $selected;
    }
    return $ret;
}