PHP цикл без повторов

12
Павел Кирхмаер
На сайте с 21.06.2008
Offline
86
#11
bezludny:
Думаю, в Вашем случае речь идет об агрегирующих функциях...

$result = mysql_query("SELECT id_author, count(id_book) FROM book GROUP BY id_book",$db);
$myrow = mysql_fetch_array($result);

Результатом запроса будут уникальные id авторов и количество книг, относящимся к ним.

Есть другой путь, но уродский в данном случае. Есть оператор DISTINCT. Он исключает повторения.

$result = mysql_query("SELECT DISTINCT id_author FROM book ORDER BY id_book DESC LIMIT 6",$db);
$myrow = mysql_fetch_array($result);

В этом случае из базы возьмутся по одному разу все авторы. Но, ИМХО, первый сбособ более правильный.

Первый способ не срабатывает, а второй просто замечательно работает ... Именно то что нужно, спасибо ...

botaniQQQ добавил 31.03.2009 в 20:27

Подскажите пожалуйста, а как использовать DISTINCT, если его нужно применить к id_author , а есть ещё meta_k, meta_d ...

$result = mysql_query("SELECT DISTINCT id_author, meta_k, meta_d FROM book ORDER BY id_book DESC LIMIT 6",$db);
$myrow = mysql_fetch_array($result);

Так не срабатывает ...

S
На сайте с 10.08.2006
Offline
115
#12
botaniQQQ:
Мне нужно не сортировка по id авторов, а именно обновления чтобы выводились, но без повторов !

вы сначала разберитесь, что вам сказали, а потом восклицательные знаки ставьте

также в вашем случает можно авторов и их книги разбить на 2 таблицы. может и в дальнейшем понадобится (в случае доработки скрипта)

Павел Кирхмаер
На сайте с 21.06.2008
Offline
86
#13
Shadow:
вы сначала разберитесь, что вам сказали, а потом восклицательные знаки ставьте
также в вашем случает можно авторов и их книги разбить на 2 таблицы. может и в дальнейшем понадобится (в случае доработки скрипта)

У меня собственно и так автора и книги в разных таблицах ...

12

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