За последние 24 часа нас посетили 34638 программистов и 1751 робот. Сейчас ищут 1160 программистов ...

Вопрос по циклу!

Тема в разделе "PHP для новичков", создана пользователем greenzlat, 4 мар 2009.

  1. greenzlat

    greenzlat Активный пользователь

    С нами с:
    27 апр 2008
    Сообщения:
    255
    Симпатии:
    0
    Мне нужно посчитать кол-во строк в базе с определенным id. Но так как id очень много, то вручну писать долго очень
    Примерно должно это быть так:


    Код (Text):
    1. <?
    2.  
    3. $result1 = mysql_query ("SELECT * FROM pesni  WHERE id_author=1",$db);
    4. $row_count = mysql_num_rows($result1);
    5.  
    6. $result2 = mysql_query ("SELECT * FROM pesni  WHERE id_author=2",$db);
    7. $row_count = mysql_num_rows($result2);
    8.  
    9. $result3 = mysql_query ("SELECT * FROM pesni  WHERE id_author=3",$db);
    10. $row_count = mysql_num_rows($result3);
    11. ......................................................
    12. $result1000 = mysql_query ("SELECT * FROM pesni  WHERE id_author=1000",$db);
    13. $row_count = mysql_num_rows($result1000);
    14. ?>
    Хотелось бы это все в цикле сделать?
     
  2. akrinel

    akrinel Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
    [sql]
    SELECT `id_author`, COUNT(*) FROM `pesni` GROUP BY(`id_author`);
    [/sql]

    и тебе сразу выдастся массив c посчитанным для каждого автора песнями.
     
  3. greenzlat

    greenzlat Активный пользователь

    С нами с:
    27 апр 2008
    Сообщения:
    255
    Симпатии:
    0
    а как мне в БД записать для каждого id значение этог счетчика в отдельное поле?
     
  4. akrinel

    akrinel Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
    Руками :)

    Ну если серьезно можно, как-то так например:
    [sql]
    INSERT INTO `some_table`(`id`, `count`) (SELECT `id_author`, COUNT(*) FROM `pesni` GROUP BY(`id_author`));
    [/sql]