Autor Zpráva
timbulko
Profil
Zdravím, mám tabuľku napríklad takto:

CREATE TABLE `abc` (
`hodnota` VARCHAR(20),
`priorita` INT(3)
);

povedzme, že je v nej napríklad 1000 riadkov a v stĺpci "priorita" je číslo od 1 do 100. Potreboval by som teraz vyselektovať z tejto tabuľky vždy jeden riadok náhodne, ale podľa priority. Čiže kým sa riadok s prioritou 1 zobrazí raz, riadok s prioritou 100 sa zatial priemerne zobrazí 100 krát.

Mám takéto niečo vytvorené pomocou PHP, ale ja to potrebujem nejako zapojiť do mysql. Tu je ten príklad v php:

<?
function prand($min, $max, $procento) {
$end_array = array();
$increment = 0;

foreach ($procento as $key=>$value)
$procento[$key] = round((($max-$min)/100)*$value);

for ($a = $min; $a < $max; $a++) {
foreach ($procento as $key=>$value)
if ($key == $a) {
for ($b = 0; $b < $value; $b++)
$end_array[$increment++] = $a;
}
else
$end_array[$increment++] = $a;
}

shuffle($end_array);
return $end_array[rand(0, count($end_array)-1)];
}
?>

použitie: prand(OD, DO, PRIORITY);

echo prand(0, 10, array(4=>50, 7=>70, 5=>10)); atd...


Vďaka.
Kajman_
Profil *
A nestačí
... order by rand()*priorita desc limit 1
?
timbulko
Profil
jee ;-) to ma nenapadlo ;-) dik
Toto téma je uzamčeno. Odpověď nelze zaslat.

0