2015-07-01 2 views
-2

Мне нужна небольшая помощь здесь.Счетчик PHP, если данные не пустые

Я пытаюсь подсчитать некоторый столбец, но подсчет моего запроса неверен.

SELECT COUNT(*) AS zero_count FROM messages WHERE uid_fk = '$uid' AND uploads IS NOT NULL AND uploads <>'' AND option = '1' 

Подсчитайте значение загрузки, если значение загрузки не пусто, а также проверить опцию = «1»

так что если значение загрузки не пусто и опция = 1, то считать.

, например:

uid_fk  uploads   option 

    1    75,    0  Not counting because secret_option is 0 
    1   76,77,   1  Count because it is 1 and upload value is not empty 
    1        1  Not count because upload value is empty 
    1    78,    1  Count because it is 1 and upload value is not empty 
    1        1  Not count because upload value is empty 
    1   79,80,   0  Not count because option is 0 

Мой запрос подсчитывает все опции = 1 только, но нужно считать:

Если значение загрузки не является пустым и вариант 1, то считать.

Что мне нужно сделать в запросе, чтобы подсчитать загрузку не пустым, а опция = 1 Кто-нибудь может мне помочь в этом отношении?

+0

Вы считаете строки или добавляете значения в столбце uploads? – Robert

+0

@robert Я пытаюсь подсчитать, не загружено ли значение загрузки, а опция = 1. – innovation

+0

Что вам нужно SUM или COUNT? –

ответ

2

Ниже запроса вероятно, будет работать нормально, просто убедитесь, что вы получаете правильное значение в $uid

SELECT 
    COUNT(*) 
FROM `messages` 
WHERE TRIM(IFNULL(`uploads`, '')) != '' AND `option` = '1' AND `uid_fk` = '$uid' 
+0

пожалуйста [CLICK] (https://scontent-fra3-1.xx.fbcdn.net/hphotos-xap1/v/t1.0-9/11222012_131358750530626_7858393301678559190_n.jpg?oh=0039d590fa22fb042945aac0249a351&oe=562D1871) эту ссылку для скриншота. – innovation

+0

и что вы получаете? –

+0

Я получаю 11 – innovation

0

Ваша потребность цитирует вокруг option его зарезервированное слово.

SELECT COUNT(*) AS 'zero_count' 
FROM `messages` m 
WHERE `option` <> 0 
    AND (`uploads` IS NOT NULL AND `uploads` <> '') 
    AND uid_fk = $uid; 
+0

Спасибо за ваш ответ. Но это тот же результат, в вопросе вы можете увидеть, что uid_fk = 1 отправил 6 сообщений, но некоторое сообщение без загрузки (пусто). Таким образом, ваш ответ дает мне тот же результат, что и 4, но мне нужно 2. – innovation

+0

, используя приведенные выше данные примера, я получаю 2. и если $ uid является целым числом, ему не нужны кавычки. – Robert

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