Помогите, пожалуйста, сделать запрос к базе

P
На сайте с 06.01.2009
Offline
601
361

Здравствуйте. Прошу помочь доработать запрос


$query_pag_num = "SELECT COUNT(*) AS count FROM `table` WHERE tovar='laminat' order by id";
$result_pag_num = mysql_query($query_pag_num);
$row = mysql_fetch_array($result_pag_num);
$count = $row['count'];

Результатом является, например, 100 едениц.

Но, нужно посчитать записи только с разными id2, т.е. у некоторых полей id2 дублируются, их учитывать не нужно. Прошу помочь.

я сделал так, но может быть можно обойтись просто запросом к БД?


$result = mysql_query("SELECT id2 FROM `table` WHERE tovar='laminat' ORDER BY `id`");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$massid[]=$row['id'];
}
$massid = array_unique($massid);
$count = count($massid);
totamon
На сайте с 12.05.2007
Offline
437
#1

$query_pag_num = "SELECT COUNT(*) AS count FROM `table` WHERE tovar='laminat' group by id2";
$count = mysql_num_rows($query_pag_num);

больше ничего в голову не приходит

Домены и хостинг https://8fn.ru/regru | Дедик от 3000р https://8fn.ru/73 | VPS в Москве https://8fn.ru/72 | Лучшие ВПС, ТП огонь, все страны! https://8fn.ru/inferno | ХОСТИНГ №1 РОССИИ https://8fn.ru/beget
[umka]
На сайте с 25.05.2008
Offline
456
#2

SELECT COUNT(*) AS count FROM `table` WHERE tovar='laminat' group by id2, id и не понятно, на кой здесь order by id

Лог в помощь!
S
На сайте с 02.05.2014
Offline
61
#3
postavkin:
но может быть можно обойтись просто запросом к БД?

Можно использовать DISTINCT

SELECT count(DISTINCT `id2`)  as `count`  FROM `table` WHERE tovar='laminat'
P
На сайте с 06.01.2009
Offline
601
#4
Sujcnm:
Можно использовать DISTINCT
SELECT count(DISTINCT `id2`)  as `count`  FROM `table` WHERE tovar='laminat'

покажите, пожалуйста, а если нужно запрос сделать такого вида, т.е. получить данные, а не их количество, как применить DISTINCT по id2?


$result = mysql_query("SELECT idvkat FROM `table` WHERE tovar='laminat'");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$newarrk[]=$row['idvkat'];
}
mysql_free_result($result);

при таком запросе результат ($vsego) не правильный. я что то не так пишу?


$query_pag_num = mysql_query("SELECT count(DISTINCT `id2`) as `count` FROM `table` WHERE tovar='laminat'");
$vsego = mysql_num_rows($query_pag_num);
S
На сайте с 02.05.2014
Offline
61
#5
postavkin:
при таком запросе результат ($vsego) не правильный. я что то не так пишу?

Надо вот так

$result= mysql_query("SELECT count(DISTINCT `id2`) as `count` FROM `table` WHERE tovar='laminat'");

$row = mysql_fetch_array($result);
$vsego =$row['count'];

Или так:

$query_pag_num = mysql_query("SELECT DISTINCT `id2` FROM `table` WHERE tovar='laminat'");

$vsego = mysql_num_rows($query_pag_num);

но я бы так не делал. Зачем выбирать все данные, а потом их считать, если mysql может их посчитать за Вас.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий