Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá galera. vou mostrar as vocês uma função que eu faço umas comparações de votos que meus usuários
fazem no site.. quando um user entra numa página do perfil de outro a função pega todos os votos
que eles dois fazem no site e daí ela faz um calculo mostrando a compatibilidades entre eles dois..
A função funciona mas esses dias está demorando uns segundos.. tentei modificar ela mas não consegui lol
Talvez se modificar para apenas uma consulta no banco der certo mas tentei fazer com outra classe e não deu certo
Se alguém souber uma maneira melhor e eficiente de fazer esse calculo eu agradeço muito :(
function comparar_lista($uid,$amigo){
$soma =false;
$uida = check($uid);
$u = check($amigo);
$v1 = MiXDB::table('rating_ip_users')->select(array('u','item','voto'))->where('u',$uida);
$resul = $v1->get();
foreach ($resul as $row) {
$item = check($row->item);
$o2 = check($row->voto);
$v2 = MiXDB::table('rating_ip_users')->select(array('u','item','voto'))->where('u','=',$u.' AND item ='.$item);
$resu2 = $v2->get();
foreach ($resu2 as $row2) {
$item2 = check($row2->item);
$o = check($row2->voto);
if (!empty($v2)) {
if ($item == $item2 && $v2->count()>5){
$soma = ((10-($o - $o2))*10 + $soma);
}
}
}
}
if (!empty($v2)) {
if ($v2->count()>5){
echo '<div class="graph">
<strong class="bar" style="width:'.round($soma/$v1->count()).'%;">'.round($soma/$v1->count()).'%</strong></div><div class="clear"></div> ';
echo '<div class="clear"></div>';
}
else{
echo '<div class="graph"><strong class="bar" style="width:0%;">0%</strong></div><div class="clear"></div> ';
}
}
else{
echo '<div class="graph"><strong class="bar" style="width:0%;">0%</strong></div><div class="clear"></div> ';
}
}Carregando comentários...