За последние 24 часа нас посетили 17704 программиста и 1623 робота. Сейчас ищут 1184 программиста ...

подсчет количества записей

Тема в разделе "Сделайте за меня", создана пользователем djpanya, 10 окт 2014.

  1. djpanya

    djpanya Новичок

    С нами с:
    10 окт 2014
    Сообщения:
    13
    Симпатии:
    0
    Привет!
    Имеется такая вещь:

    таблица tb_hhh с некоторыми данными, вытаскиваем к примеру первый столбец под названием jjjj.

    1) $res=mysql_query("Select jjjj From tb_hhhh");

    теперь то что нужно реализовать.
    Например, существуют некоторые (надо их както задать для начала, а может быть и не надо ))))):
    А
    Б
    С
    Д
    Н

    запросом 1) вытащило например Д,С,Н.

    Нужно посчитать кол-во вытянутых типа:

    Д - 3шт
    С-1шт
    н-7шт,

    а

    А и Б если они отсутствуют присвоить 0 шт. ну както так))
    Кто знает как помочь и может реализовать, помогите!!
    за помощь +1 к карме)))
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  3. djpanya

    djpanya Новичок

    С нами с:
    10 окт 2014
    Сообщения:
    13
    Симпатии:
    0
    $res=mysql_query("Select jjjj, count(*) From tb_hhhh group by jjjj");
    while($row = mysqli_fetch_array($res))
    {
    echo $row["jjjj"]; echo $row["count(*)"];
    }

    так?

    а как узнать первый и все последуищие $row["jjjj"];это А, В, Н???
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    не понятен вопрос
     
  5. djpanya

    djpanya Новичок

    С нами с:
    10 окт 2014
    Сообщения:
    13
    Симпатии:
    0
    Имеется некий текст записан столбиком:
    А (<php echo"$row[A]"; ?>)
    Б (?)
    С (?)
    Д (?)

    Текст не зависим и находится постоянно. Имеется некая база данных. В базу можно записать только А,Б,С,Д (другое не дано). Но при том в базу может быть записаны например 5 строк с текстом "А". А остальное Б,С,Д не встретиться.

    Необходимо посчитать сколько раз встретился например А. А если Б,С,Д не встречаются присвоить переменным хранящим количестваА,С,Д переменным 0, в противном случае почситать и вывести их количество вместо ?.

    Я сделал так:
    $res=mysql_query("Select * From tb_hhhh Where jjjj="A"");
    $row = mysql_fetch_array($res);
    $num=array_num_rows($row);

    и так 5 раз для каждой буквы.

    Я полагаю есть путь по короче, вот и обратился сюда.
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    group by. игорь всё верно сказал. вы просто мало себе представляете алгоритм. вернее вообще не представляете.
    объявите нули. выполните запрос с группировкой. итерируйте в объявленные переменные - ненулевое значение заменит нулевое.
     
  7. djpanya

    djpanya Новичок

    С нами с:
    10 окт 2014
    Сообщения:
    13
    Симпатии:
    0
    $kol_a=0;
    $kol_b=0;
    $kol_c=0;

    $res=mysql_query("Select jjjj, count(*) From tb_hhhh group by jjjj");
    if($res){
    while($row = mysql_fetch_array($res)){

    $row["count(*)"] - как узнать что это количество скажем букв "А" а ни "С"?
    \\\\ я так понимаю результатом будет
    \\\\ к примеру столбец 3, 78, 2
    \\\\ как узнать что букв А 78шт и присвоить нужной переменной значение 78?
    так прокатит ? $row["count(A)"]=$kol_a; ???

    }
    }else{ $kol_a=0; $kol_b=0; $kol_c=0}
     
  8. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    $cnt = array('A'=>0, 'B'=>0, 'C'=>0);
    $res = mysql_query("SELECT `jjj`, COUNT(*) `cnt` FROM `tb_hhhh` GROUP BY `jjj`");
    while($row = mysql_fetch_assoc($res)){
    $cnt[$row['jjj']]=$row['cnt'];
    }
     
  9. djpanya

    djpanya Новичок

    С нами с:
    10 окт 2014
    Сообщения:
    13
    Симпатии:
    0
    СПАСИБО !!!