как уменьшить количество запросов через сложные запросы?

MeMO

Guest
как уменьшить количество запросов через сложные запросы?

как в этом коде уменьшить количество запросов?
PHP:
$db->runquery('select * from `types` where 1');
$vote='';
while($db->getrow()){
	$vote[$db->getfield('id')]['title']=$db->getfield('title');
	$vote[$db->getfield('id')]['text']=$db->getfield('text');
}
$db->runquery('select * from `results` where `voter_id`='.$_SESSION['voter']);
while($db->getrow()){
	$db2->runquery('select * from `questions` where `id`='.$db->getfield('question_id')." order by `type_id` ASC");
	if($db2->getfield('category')!='textbox'){
		$type=$db2->getfield('type_id');
		$id=$db2->getfield('id');
		if($type==0){
			$type=$_SESSION['step3'][$id][0];
		}
		$db2->runquery('select * from `answers` where `question_id`='.$db->getfield('question_id').' and `num`='.$_SESSION['step3'][$id][0]." order by `num`");
		while($db2->getrow()){
			$vote[$type]['score']=$vote[$type]['score']+$db2->getfield('score');				
		}
	}
}
foreach($vote as $k=>$v){
	if(!isset($vote[$k]['score'])){
		unset($vote[$k]);
	}
}
 

vGhost

Guest
select * from `results` AS `res` where `voter_id`='.$_SESSION['voter'] . '
INNER JOIN `questions` AS `qs` ON(`res`.`question_id` = `qs`.`id`)
order by `type_id` ASC

что то вроде этого, только тут нефихха не понятно чё у тя где.
если бы ты лучше структуру базы (этих трёх таблиц) привёл + просто эти 3 запроса было бы проще.
 
Сверху