Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод из таблицы без повторов
 
 автор: Владимир22   (16.06.2007 в 18:09)   письмо автору
 
 

Подскажите, кто уже сталкивался...
Нужно вывести из таблицы сообщений имена их авторов, но у многих авторов есть по несколько сообщений. Как сделать вывод авторов без повторов, например: Аня, Петя, Вася...

echo "Сегодня сообщения оставляли:";
$spisok=mysql_query("select * from message order by `date` desc");  
$kk=mysql_num_rows($spisok);  
for($i=0;$i<=$kk; $i++){
$name=mysql_result($spisok, $i, 'name');
echo "$name<br>";
}

Но так выводит имена по несколько раз если у кого-то несколько сообщений (типа: Аня, Аня, Петя, Вася, Вася., Вася..). Как без повторов + с исключением имени "Дима", если есть ????
HELP!

   
 
 автор: mr Bin   (16.06.2007 в 18:27)   письмо автору
 
   для: Владимир22   (16.06.2007 в 18:09)
 


GROUP BY

   
 
 автор: Владимир22   (16.06.2007 в 19:11)   письмо автору
 
   для: mr Bin   (16.06.2007 в 18:27)
 

А можно пример?

   
 
 автор: mr Bin   (16.06.2007 в 20:15)   письмо автору
 
   для: Владимир22   (16.06.2007 в 18:09)
 


SELECT column,SUM(column) FROM table GROUP BY column

или

SELECT * FROM table GROUP BY column


column - колонка, в которой НЕ нужно выводить повторы.

   
 
 автор: Владимир22   (19.06.2007 в 01:46)   письмо автору
 
   для: mr Bin   (16.06.2007 в 20:15)
 

Спасибо, mr Bin!
Вот сделал:

echo "Сегодня сообщения оставляли:"; 
$spisok=mysql_query("select * from message GROUP BY `name` order by `date` desc");   
$kk=mysql_num_rows($spisok);   
for($i=0;$i<=$kk; $i++){ 
$name=mysql_result($spisok, $i, 'name'); 
echo "$name<br>"; 
}  

Всё отлично - повторений нет, но выводит в непонятном порядке. Надо, чтобы выводило по наибОльшей дате сообщений, т.е. у Пети 5 сообщений, значит вывести "Петя" по дате последнего его сообщения и так весь список сгрупироватьи вывести все имена по дате их последних сообщений. Как такое сделать?

   
 
 автор: Владимир22   (20.06.2007 в 12:06)   письмо автору
 
   для: Владимир22   (19.06.2007 в 01:46)
 

Повторений нет, но выводит в непонятном порядке. Надо, чтобы выводило по наибОльшей дате сообщений, т.е. у Пети 5 сообщений, значит вывести "Петя" по дате последнего его сообщения и так весь список сгрупироватьи вывести все имена по дате их последних сообщений. Как такое сделать, кто подскажет?

   
 
 автор: Trianon   (20.06.2007 в 12:58)   письмо автору
 
   для: Владимир22   (20.06.2007 в 12:06)
 

>Повторений нет, но выводит в непонятном порядке.
Вероятно , Вы храните дату сообщения в столбике с неподходящим типом. Или помещаете в него неправильные данные.

Кстати, из двух вариантов запроса mr_Bin Вы выбрали не более правильный, а более опасный.

   
 
 автор: Владимир22   (20.06.2007 в 12:07)   письмо автору
 
   для: Владимир22   (19.06.2007 в 01:46)
 

Повторений нет, но выводит в непонятном порядке. Надо, чтобы выводило по наибОльшей дате сообщений, т.е. у Пети 5 сообщений, значит вывести "Петя" по дате последнего его сообщения и так весь список сгрупироватьи вывести все имена по дате их последних сообщений. Как такое сделать, кто подскажет?

   
 
 автор: Владимир22   (20.06.2007 в 19:25)   письмо автору
 
   для: Владимир22   (20.06.2007 в 12:07)
 

Странно, кто-то продублировал мою старую запись якобы от моего имени...
Все даты хранятся правильно, так как без GROUP выводит всё чётко.
Trianon, а как с первым вариантом mr. Bina можно сделать мой код?
И где можно найти толковый учебник по запросам MySQL, чтобы с примерами и разжёвывалось всё для чайников?

   
 
 автор: Trianon   (20.06.2007 в 19:43)   письмо автору
 
   для: Владимир22   (20.06.2007 в 19:25)
 

начать можно с Криса Фиайли, SQL - руководство по изучению языка

   
 
 автор: cheops   (21.06.2007 в 11:27)   письмо автору
 
   для: Владимир22   (20.06.2007 в 19:25)
 

Вы можете ориентироваться на официальное руководство по MySQL http://www.softtime.ru/info/mysql40_ru.php - только лучше начинать с 3 главы - там очень хороший турториал.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования