Печатать результат, если все линии совпадают PHP MysQl

У меня есть проблема, я principante PHP, у меня есть таблица, где я сохраняю статьи, которые содержит заказ.

Каждая статья помечается как С&, если уже он вышел в распределение, и вновь помечается как С&, если уже он был вручен, так как это может происходить в другой день.

То, в чем я нуждаюсь, состоит в том, чтобы знать, как делать консультацию и как печатать кнопку например, если все статьи состоят = ДА и ДА тогда кнопка в том, чтобы он сказал ЗАКРЫВАТЬ ПРОДАЖУ, так как все пошли в распределение и врученные.

oder_product

+-----+-----+-----+-----+-----+------+
| id | item_id | reparto | entregado |
======================================
| 1  |    1    |   SI    |    NO    |  
======================================

======================================
| 2  |    2    |   SI    |   SI    | 
======================================
| 3  |    2    |   SI    |   SI    | 
======================================
| 4  |    2    |   SI    |   SI    | 
======================================
| 5  |    2    |   SI    |   SI    | 
======================================

======================================
| 6  |    3    |   SI    |    NO    | 
======================================
| 7  |    3    |   SI    |    SI    | 
======================================

и хороший я соединен отсюда, могу выбирать все, но как он знает PHP, которые являются всеми действительно?

SELECT * FROM oder_product WHERE reparto="SI" AND entregado="SI" AND item_id="2";

PHP Я думаю, что оно было бы нечто похожим:

If result=all rows match;
Echo' Todos coinciden AQUI BOTON CERRAR VENTA';

else
Echo' No todos coinciden, faltan $result2 para coincidir;

Я надеюсь объясниться хорошо, занимаю помощь в синтаксисе MySql, если он состоит в том, что он использует тип COUNT и в PHP.

3
задан 16.05.2016, 00:02
3 ответа

Всегда хорошо предотвращать укрытые консультации, из-за которого recomendarГ - во что-то как:

select IF(SUM(IF(reparto = 'SI' AND entregado = 'SI', 1, 0) = COUNT(*), TRUE, FALSE) as cerrada from order_producto GROUP BY item_id;

и потом только comprarar на поле cerrada

2
ответ дан 24.11.2019, 14:42

Ты мог бы делать две консультации, как предлагает Тони в Вашем ответе, или помещать две как субконсультации внутри того же query:

SELECT (SELECT COUNT(id) FROM oder_product WHERE item_id = '1') AS num_item,
       (SELECT COUNT(id) FROM oder_product WHERE item_id = '1' AND reparto = 'SI' AND entregado = 'SI') AS num_sies

Если стоимость num_item и num_sies совпади, тогда все будки были "ДА" и кнопка, чтобы закрывать окно, должна появляться.


Или также ты мог бы упрощать, если ты фокусируешь elenfocar проблему с другого различного способа: нужно показывать кнопку, если ни одна из линий продукта не имеет "НЕ" в распределении или поставке. Это гораздо более простая консультация:

SELECT COUNT(*) FROM oder_product WHERE item_id="2" AND (reparto="NO" OR entregado="NO");

Если результат COUNT(*) он больше, чем нуль, это означает, что у какой-то из линий есть один, "не" и не было бы нужно показывать кнопку закрытия окна. (ОН ЗАМЕЧАЕТ: Это было бы имея в виду, что item_id он действительный и существует в таблице, если он не существует, результата всегда будет 0).

0
ответ дан 24.11.2019, 14:42

Одна opciГіn, что со мной случается, состояла бы в том, чтобы делать две консультации считая вытекающие реестры, одну с нею condiciГіn пример:

SELECT count(*) FROM oder_product WHERE reparto="SI" AND entregado="SI" 

и другая без condiciГіn

SELECT count(*) FROM oder_product;

, и если они совпадают, ты показываешь botГіn.

0
ответ дан 24.11.2019, 14:42