За последние 24 часа нас посетили 19288 программистов и 1617 роботов. Сейчас ищут 1113 программистов ...

Запрос COUNT

Тема в разделе "MySQL", создана пользователем jenya777777, 20 мар 2010.

  1. jenya777777

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

    С нами с:
    16 мар 2010
    Сообщения:
    562
    Симпатии:
    0
    Здраствуйте!
    Есть таблица с такими значениями:
    id, album, title, foto, part

    Даю запрос на вывод альбомов из базы
    [sql]
    $result = mysql_query("SELECT * FROM categories WHERE part='$part'");
    $myrow = mysql_fetch_array($result);
    do {
    echo "
    <tr>
    <td>
    <img src='foto/".$myrow["img"]."'></td>
    <td>".$myrow["title"]."кол-во фотографий - ".?????????."<td>
    </tr> "; }

    while ($myrow = mysql_fetch_array($result));[/sql]



    Как мне рядом с картинкой альбомов вывести кол-во фотографий в альбоме? Как правильно составить запрос
     
  2. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
  3. jenya777777

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

    С нами с:
    16 мар 2010
    Сообщения:
    562
    Симпатии:
    0
    Я понимаю, что мне надо еще много учиться, но помогите пожалуйста с запросом
     
  4. armadillo

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

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    убери конструкцию do { } while
     
  5. jenya777777

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

    С нами с:
    16 мар 2010
    Сообщения:
    562
    Симпатии:
    0
    Убрать не могу, потому что у меня выводится список альбомов, а на против них должно быть написано кол-во фотографий в каждом альбоме. Или можно как нибудь изменить вывод альбомов?
     
  6. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    можешь, см. в мануале примеры по mysql_fetch_* и управляющим конструкциям
     
  7. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    PHP:
    1. $result = mysql_query("SELECT * FROM `categories` WHERE `part` = '".$part"'");
    2. while($myrow = mysql_fetch_assoc($result))
    3. {
    4.     $all_ar = mysql_query("SELECT COUNT(*) FROM `images` WHERE `part` = '".$part."'");
    5.     echo '<tr><td><img src="http://site.com/foto/'.$myrow['img'].'"></td>
    6.     <td>'.$myrow['title'].'кол-во фотографий - '.mysql_result($all_ar,0).'<td></tr>';
    7. }
     
  8. karakh

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

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    а может, нунах запрос в цикле? может этот count джоином к запросу прилепить?
     
  9. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    karakh
    Предлагай свой вариант, так уж быть, я разрешаю :))))))
     
  10. jenya777777

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

    С нами с:
    16 мар 2010
    Сообщения:
    562
    Симпатии:
    0
    Вот почитал мануалы по MySQL, сделал вот такой запрос

    [sql]select album, COUNT(*)
    from fotogal
    GROUP BY album[/sql]

    Вроде бы работает.
     
  11. jenya777777

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

    С нами с:
    16 мар 2010
    Сообщения:
    562
    Симпатии:
    0
    Теперь надо научиться вывести его на экран :)
     
  12. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    и что, по твоему, оно выведет? :)
     
  13. KOM

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

    С нами с:
    21 июл 2006
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    Кривой Рог, Днепропетровская
    а где в твоей базе видно что фоток , несколько ???

    я вижу что у альбома есть несколько частей и

    и что этим вообще хочешь выбрать все третие части все альбомов??????

    у тебя альбомы и описание какие фотки принадлежат альбому в разных таблицах или в одной?
    если в разных то LEFT JOIN

    1 таблица списоб альбомов

    2. таблица список всех фотографий с id альбомов


    [sql]SELECT *, count(f.id) as cnt_foto FROM users as a
    LEFT JOIN (foto as f) ON (a.id=f.id)
    GROUP BY f.id
    [/sql]
     
  14. jenya777777

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

    С нами с:
    16 мар 2010
    Сообщения:
    562
    Симпатии:
    0
    Таблица состоит вот так
    [sql]
    id part album title foto
    123 2 3 пав 1.jpg
    124 1 3 вап 2.jpg
    125 1 1 12 3.jpg
    126 2 2 12 4.jpg
    127 1 1 45 5.jpg
    128 1 1 12 6.jpg
    [/sql]

    Код (Text):
    1. Part - это раздел фотографий (детские, школьные и т.д.)
    2. Album - это разные альбомы в каждом разделе
    Конструкция
    [sql]SELECT album, COUNT(*)
    FROM fotogal
    WHERE part = '$part'
    GROUP BY album[/sql]
    работает, но вот теперь не знаю как вывести альбомы таким способом:

    В каждом разделе:
    альбом 1- количество фотографий (3)
    альбом 2- количество фотографий (1)
    альбом 3- количество фотографий (2)