2015-01-16 2 views
2

В моем уведомлении об общем количестве операций, которые я создал, как описано ниже, что не может показать правильный результат, как я хочу. Пожалуйста, см. Мой код ниже с описанием и My Вопрос внизу моего кода.мой счетчик уведомлений php не может показать правильный результат

Фрагмент моего кода сделал как:

  1. я узнаю, все мои наблюдения и последователи идентификаторов, (Into последующей таблицы).

  2. Затем, с помощью идентификаторов, я узнаю все действия, выполняемые этими идентификаторами (в таблицу обновления).

    a. В раскрывающемся списке уведомлений: если какое-либо действие я вижу один раз и наводил на него, мой код javascript делает его view = 1. В противном случае view = 0 является моим значением по умолчанию.

    b. Если просмотреть один раз, мой код вычитает общий вид из общего количества.

  3. В моем первом запросе я использовал свой идентификатор, чтобы узнать всех моих последователей и последователей, которые также показывают мои собственные действия. Поэтому я делаю здесь еще один запрос, чтобы узнать все мои действия, чтобы вычесть его из общего количества.

Это все; Вот мой код:

global $dbh; 
$myid = $session->id; 

//1. 
$q = mysqli_query($dbh,"SELECT * FROM follow WHERE friend_one='$myid' OR friend_two='$myid'") or die(mysqli_error($dbh)); 
while ($row = mysqli_fetch_assoc($q)) { 
$f_id = $row['friend_one']; 
$f2_id = $row['friend_two']; 

//2. 
date_default_timezone_set('Asia/Dhaka'); 
$timestamp = date("M j, y; g:i a", time() - 2592000); 
$g = mysqli_query($dbh,"SELECT id FROM update WHERE `from_id`='".$f_id."' OR `to_id`='".$f_id."' OR `from_id`='".$f2_id."' OR `to_id`='".$f2_id."' AND `view` = '0' AND `created` > '".$timestamp."'") or die(mysqli_error($dbh)); 
while ($row = mysqli_fetch_assoc($g)) { 
    $count1 = mysqli_num_rows($g); 
     $id = $row['id']; 

//2.b 
$v = mysqli_query($dbh,"SELECT * FROM update WHERE `id`='".$id."' AND `view` = '1' AND `created` > '".$timestamp."'") or die(mysqli_error($dbh)); 
    $count2 = mysqli_num_rows($v); 

//3. 
$c = mysqli_query($dbh,"SELECT * FROM update WHERE `id`='".$id."' AND `from_id`='".$myid."' AND `created` > '".$timestamp."'") or die(mysqli_error($dbh)); 
    $count3 = mysqli_num_rows($c); 

// Total count 
$count = ($count1 - $count2 - $count3); 

echo '.$count.'; 

Вопрос На мой выше //2.b сценарий не может сосчитать все идентификаторы, которые уже просмотрены? Его счет только «1» всегда.

+0

Пожалуйста описал меня прежде, чем вниз голосования. Спасибо. – koc

ответ

2

Вы хотите сосчитать все идентификаторы, но запрос явно ограничивает результат к определенному идентификатору: id='".$id."'".

+0

Спасибо, сэр, но как считать все идентификаторы здесь, пожалуйста. – koc

+1

Что происходит, когда вы удаляете идентификационную часть запроса? –

+0

В нем показано общее количество всех видов деятельности, где view = 1. – koc

Смежные вопросы