Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: запрос..

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
grugoriy
Отправлено: 27 Ноября, 2010 - 20:03:51
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. <table border='1'>
  2.  
  3. <form method='POST'>
  4. <?
  5.  
  6.  $nn=$_POST['nn'];
  7. $db=@mysql_connect("localhost", "sportsmen", "sport") or die ("Не могу подсоединиться к базе данных" .mysql_error);
  8. echo ("<font color='olive' size='4'> Статус подключения : Подключен к БД </font> <br>");
  9.  
  10. mysql_select_db("sportsmens", $db);
  11.  
  12.   $vivod= mysql_query( "SELECT vid,count(medal) FROM sportsmen WHERE god_poluch='$nn' GROUP BY  vid HAVING count(medal)   ",$db) or die ("не работает");
  13.  
  14.  
  15.   $arr=mysql_fetch_array($vivod);
  16.  
  17.  
  18.    echo "<div color ='green'><tr><td>Вид спорта</td></div>";
  19.    echo "<div color ='green'><td>Количество медалей</td></tr></div>";
  20.  
  21.    do
  22.  
  23.    {
  24.  
  25.  
  26.  
  27.    $t2= $arr[0];
  28.  
  29.  
  30.  
  31.     $t4=$arr[1];
  32.  
  33.  
  34.  
  35.    echo "<tr><td>$t2</td>";
  36.       echo "<td> $t4 </td></tr>";
  37.  
  38.    }
  39.  
  40. while ($arr=mysql_fetch_array($vivod));
  41.  
  42. $zap=mysql_query("SELECT DISTINCT god_poluch FROM sportsmen",$db);
  43. $mas=mysql_fetch_array($zap);
  44. echo '<select size="1" name="nn">';
  45. do
  46. {   $k1=$mas['god_poluch'];
  47.  
  48.         echo "<option value='$k1'>$k1</option>";
  49.  
  50.   }
  51.     while ( $mas=mysql_fetch_array($zap));
  52.    echo "</select>";
  53.  
  54.  
  55. ?>
  56. </table>
  57.  


выбираю дату - выводит к примеру конный спорт (1 мед) сноуборд(4) .. как сделать чтоб он выводил чисто сноуборд (4) ,т.е . максимальное кол-во медалей по спорту в выбранной дате?

(Отредактировано автором: 27 Ноября, 2010 - 20:24:22)

 
 Top
ALEN
Отправлено: 27 Ноября, 2010 - 20:06:29
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




Извини, но не возможно читать эту бяку, редактируй до читаемого варианта и на будущее избегай такой бяки как:
do { } while { }
 
 Top
dc93
Отправлено: 27 Ноября, 2010 - 20:35:55
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




grugoriy
вот это, имхо, работать не будет
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. SELECT vid,count(medal)
  3. FROM sportsmen
  4. WHERE god_poluch='$nn'
  5. GROUP BY  vid HAVING count(medal)
  6.  


а вот это
CODE (htmlphp):
скопировать код в буфер обмена
  1. SELECT vid,count(medal)
  2. FROM sportsmen
  3. WHERE god_poluch='$nn'
  4. GROUP BY  vid

будет :)

максимальное кол-во медалей по спорту в выбранной дате?

этого вопроса я вообще не понял...
вид спорта, у которого максимальное количество медалей?
 
 Top
grugoriy
Отправлено: 27 Ноября, 2010 - 20:44:41
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




на картинке все отображено..

 
 Top
dc93
Отправлено: 27 Ноября, 2010 - 20:49:54
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




grugoriy пишет:
на картинке все отображено..



CODE (htmlphp):
скопировать код в буфер обмена
  1. SELECT vid,count(medal)
  2. FROM sportsmen
  3. WHERE god_poluch='$nn'
  4. GROUP BY  vid
  5. order by 2 desc limit 1
  6.  
 
 Top
JustUserR
Отправлено: 27 Ноября, 2010 - 20:50:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




dc93 пишет:
Максимальное кол-во медалей по спорту в выбранной дате?
В качестве возможного варианта осуществляющего создание целевого SQL-запроса с включением взаимосвязанных агрегационных функций - возможно использования вложенных вхождений SQL-запросов каждый из которых обеспечивает предоставление единственного синхронизационного значения


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
dc93
Отправлено: 27 Ноября, 2010 - 20:57:09
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




JustUserR

что такое
Цитата:
взаимосвязанные агрегационные функции


?
 
 Top
grugoriy
Отправлено: 27 Ноября, 2010 - 20:59:05
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




dc93, то твоего поста я сделал тоже самое))

это конечно не правильный вариант... но думаю при сдаче прокатит) спасибо за внимание всем!
 
 Top
JustUserR
Отправлено: 27 Ноября, 2010 - 21:04:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




dc93 пишет:
Взаимосвязанные агрегационные функции
В качестве взаимосвязанных агрегационных функций возможно рассмотрение таких операторов запроса результат действия которых применяется к выбранным информационным полям - в качестве возможного примерного варианта допустимо рассмотрение получение максимального элемента поля запроса на основе вложенных запросов


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
dc93
Отправлено: 27 Ноября, 2010 - 21:04:51
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




grugoriy пишет:

это конечно не правильный вариант...

O_O
почему не правильный? и с чего такая уверенность?

или запрос не выполняется и база рисует ошибки?

зы или Вы не правильно озвучили требования к запросу.
(Добавление)
JustUserR пишет:
В качестве взаимосвязанных агрегационных функций возможно рассмотрение таких операторов запроса результат действия которых применяется к выбранным информационным полям - в качестве возможного примерного варианта допустимо рассмотрение получение максимального элемента поля запроса на основе вложенных запросов


я не понимаю при чем тут взаимоСВЯЗЬ агрегирующих функций, как агрегатные функции связывабтся друг с другом и для чего это может понадобиться

я правильно понял пример
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. select
  3.   max(select sum(b.Price) from Table2 b where a.ID = b.ID),
  4.   a.Name
  5. from
  6.   Table1 a
  7. group by a.Name
  8.  

?
 
 Top
grugoriy
Отправлено: 27 Ноября, 2010 - 21:14:19
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




• найти и вывести вид спорта, в котором максимальное количество медалей в определенном году.

вот как запрос звучит

у меня в запросе выводит все виды спорта и общее кол-во медалей в данном году.. но не хочет урезать именно тот спорт у которого больше медалей
 
 Top
dc93
Отправлено: 27 Ноября, 2010 - 21:17:00
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




grugoriy
что значит "урезать"?
 
 Top
grugoriy
Отправлено: 27 Ноября, 2010 - 21:24:14
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




оставить вид спорта с макс медалями остальные откинуть
 
 Top
dc93
Отправлено: 27 Ноября, 2010 - 21:29:23
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




grugoriy пишет:
оставить вид спорта с макс медалями остальные откинуть

ну и?

тот запрос как раз выведет резалт в _одну_ строку, в этой строке будет указан вид спорта с количеством медалей, и это количество будет максимальным из всей выборки.

так где порылась "ошибка"?
 
 Top
grugoriy
Отправлено: 27 Ноября, 2010 - 21:37:05
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




GROUP BY vid
order by 2 desc limit 1


сортирует 2 записи в обратку, оставляет 1 запись.

если там записей 10-15 будет?
я могу и ошибаться.. php и mysql только начал изучать
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB