Как посчитать записи в БД по нескольким параметрам?
Здравствуйте.
Есть задача, вывести воронку продаж!
первая база - в ней данные об уровнях воронки, уровни обозначаются полем id_parameter;
вторая база - база статусов, сразу несколько статусов может принадлежать к одному уровню из первой базы. id_parameter первой базы записан к статусам второй базы в поле funnel;
третья база - база лидов\клиентов, у которых установлены id_parameter статусов из второй базы;
Нужно вывести все данные: Первой базы, т.е. Название Уровня (это могу), далее посчитать, Сколько лидов Третей базы относится к статусам Второй базы относящимся к Уровню Первой базы.
Вроде, правильно объяснил.
Начал писать следующее:
// формируем массив с данными ВОРОНКИ
if($result_suppilo= mysql_query("SELECT * FROM tasot_suppilo WHERE id_cabinet = '".$myrow_cabinet['id']."' and id_parameter!='0' ORDER BY drag")) {
$ff_suppilo = mysql_num_rows($result_suppilo);
if(mysql_num_rows($result_suppilo)) {
while($data_suppilo = mysql_fetch_assoc($result_suppilo)) {
$suppilo_list[] = $data_suppilo;
}
}
else {$error = "<div class='alert alert-error'><b>Пусто!</b> - чтобы данная функция заработала нужно добавить <a href=tools.php?p=channels>источники трафика</a>.</div>";}
}
// формируем массив с данными СТАТУСЫ
//if($result_status= mysql_query("SELECT * FROM `status` WHERE id_cabinet = '".$myrow_cabinet['id']."' ORDER BY drag")) {
//$ff_suppilo = mysql_num_rows($result_status);
// if(mysql_num_rows($result_status)) {
// while($data_status = mysql_fetch_assoc($result_status)) {
// $status_list[] = $data_status;
// }
// }
// else {$error = "<div class='alert alert-error'><b>Пусто!</b> - чтобы данная функция заработала нужно добавить <a href=tools.php?p=channels>источники трафика</a>.</div>";}
//}
// формируем массив с данными ЛИДЫ
//if($result_lead= mysql_query("SELECT * FROM `lids` WHERE id_cabinet = '".$myrow_cabinet['id']."'")) {
//$ff_lead = mysql_num_rows($result_lead);
// if(mysql_num_rows($result_lead)) {
// while($data_lead = mysql_fetch_assoc($result_lead)) {
// $lead_list[] = $data_lead;
// }
// }
// else {$error = "<div class='alert alert-error'><b>Пусто!</b> - чтобы данная функция заработала нужно добавить <a href=tools.php?p=channels>источники трафика</a>.</div>";}
//}
$m=110;
foreach($suppilo_list as $suppilo_value) {
$result_status= mysql_query("SELECT * FROM status WHERE funnel = '$suppilo_value[id_parameter]' and id_cabinet = '".$myrow_cabinet['id']."'");
$ff_suppilo = mysql_num_rows($result_status);
while($data_status = mysql_fetch_assoc($result_status)) {
$str .= "status = ".$data_status['id_parameter']." or ";
$options = substr_replace($str, '', strrpos($str, ' or '));
$result_lead= mysql_query("SELECT * FROM lids WHERE ($options) and id_cabinet = '".$myrow_cabinet['id']."'");
$ff_lead = mysql_num_rows($result_lead);
}
?>
<div class="conv conv-status" style="background-color: <?=$suppilo_value['background_color'] ?> !important;width:<?=$m=$m-10;?>%;"><?=$ff_lead ?> <sup>/ 100%</sup></div>
<?
}
?>
Немного поковырял, выводит правильно только по первому УРОВНЮ, все остальное считает непарвильно... Подскажите, что делаю не так...