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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Выбрать по 3 новости из каждой рубрики

Сообщения:  [1-10]   [11-17] 

 
 автор: Eugene77   (13.07.2009 в 20:04)   письмо автору
 
   для: kosta_in_net   (12.07.2009 в 12:58)
 

А структуру табличек не могли бы приложить для ясности?

  Ответить  
 
 автор: kosta_in_net   (12.07.2009 в 12:58)   письмо автору
 
   для: mihdan   (03.07.2009 в 11:09)
 

вот варианнт из моего скрипта (вывод категорий с указанием количества постов по категории и отображением 10 последних постов):

$sql ='SELECT id,name,COALESCE(cnt, 0) AS cmtcnt ';
$sql.='FROM '.table_tip.' t ';
$sql.='LEFT JOIN (SELECT category,COUNT(*) AS cnt FROM '.table_doska.' d WHERE `hide` GROUP BY category) as d ';
$sql.='ON d.category = t.id ';
$sql.='ORDER BY `name`';

$preresult=mysql_query($sql) or die(mysql_error());
if($preresult && mysql_num_rows($preresult) != 0) {
while (@$presql_ar=mysql_fetch_assoc($preresult)) {
echo "<div class=block>";
echo "<p class=block-head><a href='?tip=".$presql_ar['id']."'>".$presql_ar['name']." (".$presql_ar['cmtcnt'].")</a></p>\r\n";

if($presql_ar['cmtcnt'] > 0){
$sql='SELECT id,name,created FROM '.table_doska.' WHERE `hide` AND category='.$presql_ar['id'].' ORDER BY `created` DESC LIMIT 0,10';// показывать все разрешенные
$result=mysql_query($sql) or die(mysql_error());
if($result && mysql_num_rows($result) != 0) {
echo "<table cellpadding=2 cellspacing=0 ><tr><th>Дата<th>Тема";
while (@$sql_ar=mysql_fetch_assoc($result)) {
echo "<tr><td>".$sql_ar['created']."<td><a href='?id=".$sql_ar['id']."'>".$sql_ar['name']."</a>\r\n";
}
echo "</table>";
}
}

echo "<P class=tar>Все объявления <a href='?tip=".$presql_ar['id']."'>".$presql_ar['name']." (".$presql_ar['cmtcnt'].")</a>";
echo "</div>";
}
}

  Ответить  
 
 автор: mihdan   (03.07.2009 в 11:09)   письмо автору
 
   для: Eugene77   (01.07.2009 в 20:27)
 

Да, но не советую, попробовал так сделать - результат разочаровал. Скорость выполнения оставляет желать лучшего. Проще сделать, как предложил Trianon

  Ответить  
 
 автор: Eugene77   (01.07.2009 в 20:27)   письмо автору
 
   для: Trianon   (01.07.2009 в 19:37)
 

Это наверно процедурами надо как-то решать?

  Ответить  
 
 автор: Trianon   (01.07.2009 в 19:37)   письмо автору
 
   для: Eugene77   (01.07.2009 в 19:23)
 

врядли выполнимо.

  Ответить  
 
 автор: Eugene77   (01.07.2009 в 19:23)   письмо автору
 
   для: Trianon   (24.06.2009 в 00:26)
 

А как надо изменить структуру таблиц чтобы ради решения этой распространённой задачи не посылать сотни запросов?

  Ответить  
 
 автор: mihdan   (24.06.2009 в 11:19)   письмо автору
 
   для: Trianon   (24.06.2009 в 00:26)
 

Видел нечто подобное одним запросом, но на другой СУБД, разве нереально такое в MySQL

  Ответить  
 
 автор: Trianon   (24.06.2009 в 00:26)   письмо автору
 
   для: Лена   (24.06.2009 в 00:20)
 

>Ошиблась. С LIMIT`ом здесь никак нельзя и без двух запросов, где во втором указать этот LIMIT, наверное, не обойтись.
>И средствами РНР тоже никак не получится?

средствами php вполне. Только не двумя запросами, а n+1
Первый выберет n категорий, остальные - тройки строк.



PS. Не надо.

  Ответить  
 
 автор: Лена   (24.06.2009 в 00:20)   письмо автору
 
   для: Trianon   (23.06.2009 в 23:08)
 

Ошиблась. С LIMIT`ом здесь никак нельзя и без двух запросов, где во втором указать этот LIMIT, наверное, не обойтись.
И средствами РНР тоже никак не получится?

PS Вообще-то если вы не догоняете, значит 99% неправильно.

  Ответить  
 
 автор: Trianon   (23.06.2009 в 23:08)   письмо автору
 
   для: Лена   (23.06.2009 в 14:10)
 

что-то я не догоняю, как тут подставить нужный ( тот что в заголовке темы) LIMIT.

  Ответить  

Сообщения:  [1-10]   [11-17] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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