PHP.SU

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

Страниц (15): В начало « ... 2 3 4 5 [6] 7 8 9 10 ... » В конец

> Найдено сообщений: 224
koras Отправлено: 30 Августа, 2010 - 20:46:53 • Тема: Подсчет суммы, количества и название тем. • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 61
Всё, тема клозед как всегда.
Спасибо моему другу VDShark, за помощь. Хороший специалист в SQL с большой буквы )


Решение

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT
  2. id, nametheme AS name,
  3. (SELECT AVG(`rating`)
  4. FROM `rating` WHERE `rating`.`theme` = theme.id) AS rating,
  5. (SELECT COUNT(`theme_id`)
  6. FROM `comments` WHERE `comments`.`theme_id` = theme.id) AS comments
  7. FROM `theme`
  8.  
koras Отправлено: 30 Августа, 2010 - 11:36:50 • Тема: Подсчет суммы, количества и название тем. • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 61
Цитата:
Для решения вашей задачи возможно использовать набор вложенных SQL-запросов

Получается два запроса,
Здесь выбираем id темы, рейтинг темы, имя темы привязка id темы
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT
  2. `theme`.`id` AS id,
  3. AVG(`rating`.`rating`) AS rating,
  4. `theme`.`nametheme` AS name
  5. FROM  `theme` JOIN  `comments` ON       `theme`.`id`=`comments`.`theme_id`
  6.  JOIN `rating` ON  `theme`.`id`=`rating`.`theme`
  7. GROUP BY `theme`
  8. ORDER BY  `theme`.`review` DESC
  9.  
  10.  

Здесь выбираем id темы, общее количество комментариев привязка id темы
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2.  
  3. SELECT
  4. `theme`.`id` AS id,
  5. count(`comments`.`theme_id`) AS comments
  6. FROM  `theme` JOIN  `comments`  ON       `theme`.`id`=`comments`.`theme_id`
  7. GROUP BY `texttheme`
  8. ORDER BY  `theme`.`review` DESC
  9.  


То есть общее у обеих запросов `theme`.`id`
Но в под запросе можно использовать только один параметр, а у меня там и там на выходе 2 и это необходимо
koras Отправлено: 29 Августа, 2010 - 21:18:59 • Тема: Как создать уникальную переменную • Форум: Программирование на PHP

Ответов: 12
Просмотров: 889
Когда не ясна задача и ответ соответственно тоже не ясен.
Если переменная поменяет своё название, как вы потом обращаться к ней будете?
koras Отправлено: 29 Августа, 2010 - 16:26:30 • Тема: Подсчет суммы, количества и название тем. • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 61
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT
  2. SELECT
  3. AVG(`rating`.`rating`) AS rating,
  4. `theme`.`nametheme` AS name,
  5. count(`comments`.`theme_id`) AS comments
  6. FROM  `theme` JOIN  `comments` ON       `theme`.`id`=`comments`.`theme_id`
  7.  JOIN `rating` ON  `theme`.`id`=`rating`.`theme`
  8. WHERE `theme`.`active`  =       '1'     AND
  9. `comments`.`invait`     =       '1'     AND
  10. `rating`.`activ`        =       '1'    
  11. GROUP BY `theme`
  12. ORDER BY  `theme`.`review` DESC
  13.  


Только коменты не правильно отображаются
koras Отправлено: 29 Августа, 2010 - 15:48:06 • Тема: Подсчет суммы, количества и название тем. • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 61
Есть база. приведу часть для наглядности

CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. CREATE TABLE IF NOT EXISTS `comments` (
  3.   `id` int(11) NOT NULL AUTO_INCREMENT,
  4.   `userscomment` int(11) NOT NULL,
  5.   `datetime` int(11) NOT NULL,
  6.   `textcomments` text NOT NULL,
  7.   `invait` int(2) NOT NULL DEFAULT '1',
  8.   `theme_id` int(6) NOT NULL,
  9.   `ip` varchar(15) NOT NULL,
  10.   `bad_comment` int(2) NOT NULL DEFAULT '0',
  11.   PRIMARY KEY (`id`)
  12. ) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=14 ;
  13.  
  14. -- --------------------------------------------------------
  15.  
  16. --
  17. -- Table structure for table `rating`
  18. --
  19.  
  20. CREATE TABLE IF NOT EXISTS `rating` (
  21.   `id` int(6) NOT NULL AUTO_INCREMENT COMMENT 'id',
  22.   `user` int(6) NOT NULL COMMENT 'пользователь',
  23.   `time` int(6) NOT NULL COMMENT 'время',
  24.   `rating` int(2) NOT NULL COMMENT 'рейтинг',
  25.   `activ` int(1) NOT NULL DEFAULT '1' COMMENT 'активен ли коментарий',
  26.   `theme` int(6) NOT NULL COMMENT 'id темы',
  27.   `comment` int(6) NOT NULL,
  28.   `ip` varchar(15) NOT NULL,
  29.   PRIMARY KEY (`id`)
  30. ) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=18 ;
  31.  
  32. --
  33. -- --------------------------------------------------------
  34.  
  35. --
  36. -- Table structure for table `theme`
  37. --
  38.  
  39. CREATE TABLE IF NOT EXISTS `theme` (
  40.   `id` int(11) NOT NULL AUTO_INCREMENT,
  41.   `rubric` int(11) NOT NULL,
  42.   `nameuser` int(10) NOT NULL,
  43.   `nametheme` varchar(256) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  44.   `texttheme` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  45.   `date` int(10) NOT NULL,
  46.   `active` int(1) NOT NULL DEFAULT '1',
  47.   `review` int(7) NOT NULL DEFAULT '0',
  48.   PRIMARY KEY (`id`)
  49. ) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=4 ;
  50.  



Задача, из данной базы сделать подсчет средней суммы рейтинга (`rating`.`rating`) и общая сумма комментариев(`comments`.`theme_id`) к каждой теме и название темы(`theme`.`nametheme`).

Я уже много перебрал запросов, но наличей малого опыта работы с базами даёт своё понимание.

Пример моих запросов.

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT
  2. (sum(`rating`.`rating`)/count(`rating`.`rating`)) AS rating,
  3. `theme`.`nametheme`AS name,
  4. (count(`comments`.`theme_id`)) AS comments
  5.  
  6.  
  7. FROM  `theme` JOIN  `comments` ON       `theme`.`id`=`comments`.`theme_id`
  8.  
  9. LEFT JOIN `rating` ON  `theme`.`id`=`rating`.`theme`
  10.  
  11. WHERE `theme`.`active`  =       '1'     AND
  12. `comments`.`invait`     =       '1'     AND
  13. `rating`.`activ`        =       '1'    
  14.  

Но это не то, он пишет всего название одной темы и подсчет колличества коментов не каждой темы отдельно а общее количество всех и название одной темы.
(Добавление)
Дпополню, это обший подсчёт статистики на главную страницу, с
название темы = рейтинг темы = сколько комментов к теме
koras Отправлено: 25 Августа, 2010 - 00:45:16 • Тема: Проблема отправки данных из формы • Форум: Программирование на PHP

Ответов: 11
Просмотров: 678
Jonny153

Вы меня прям без ножа режите.
Почитайте внимательно
http://www.php.su/articles/?cat=...les&page=069

JustUserR
Всегда поражался вашими ответами,за что спасибо.
koras Отправлено: 24 Августа, 2010 - 23:15:37 • Тема: Проблема отправки данных из формы • Форум: Программирование на PHP

Ответов: 11
Просмотров: 678
Бред конечно, но по идее должно всё работать...



Попробуйте изменить строчку

PHP:
скопировать код в буфер обмена
  1.  
  2. echo "<option valuе=".$query1_row['id'].$ech.">".$query1_row['p_name']."</option>";


на

PHP:
скопировать код в буфер обмена
  1.  
  2. echo "<option valuе=\"".$query1_row['id']."\" $ech >".$query1_row['p_name']."</option>";




потом покажите
koras Отправлено: 24 Августа, 2010 - 22:17:08 • Тема: Проблема отправки данных из формы • Форум: Программирование на PHP

Ответов: 11
Просмотров: 678
Зачем ваш код, я же попрасил выше...


и HTML того что у вас получается в итоге.
php я и выше смотрел
koras Отправлено: 24 Августа, 2010 - 21:41:40 • Тема: Проблема отправки данных из формы • Форум: Программирование на PHP

Ответов: 11
Просмотров: 678
Толи я туплю, толи мне мерещилось.
Кажется код был другой, то есть..


PHP:
скопировать код в буфер обмена
  1. echo "<option valuе=".$query1_row['p_name'].$ech.">".$query1_row['id']."

при вашем коде если я не ошибаюсь, всё должно работать. если не работает то приведите мне вывод строчки.



и HTML кода ?что у вас получается из всего что вы навояли, то есть именно формы.

Для моего понимания
koras Отправлено: 24 Августа, 2010 - 20:58:13 • Тема: Проблема отправки данных из формы • Форум: Программирование на PHP

Ответов: 11
Просмотров: 678
Какой страшно непонятный код. Отформатируйте плиз...

Цитата:
оказывается строка $query1_row['p_name']?


А вы что хотите увидеть ?


PHP:
скопировать код в буфер обмена
  1. <form name="forma1" method="post" action="index.php?page=3">
  2. <select name=pastor size=1>
  3. <?PHP
  4. for ($i=1;$i<=$query1_count;$i++)
  5. {
  6. $query1_row=mysql_fetch_assoc($query1);
  7. if ($pastor==$query1_row['id'])
  8. {$ech=" selected";}
  9. else
  10. {$ech="";}
  11. echo "<option valuе=".$query1_row['id'].$ech.">".$query1_row['p_name']."</option>";
  12. }
  13. mysql_data_seek($query1, 0);
  14. ?>
  15. </select>
  16. <input name="start" type="submit" value="выбрать">
  17. </form>
koras Отправлено: 20 Августа, 2010 - 21:55:22 • Тема: массив пропустить через preg_match • Форум: Программирование на PHP

Ответов: 4
Просмотров: 463
как красиво сделать.

Есть массив, который передаётся через GET вида

CODE (html):
скопировать код в буфер обмена
  1. &metro[]=747&metro[]=741&metro[]=742&metro[]=743&metro[]=744&metro[]=745&metro[]=746&metro[]=747&metro[]=748&metro[]=749&metro[]=750&metro[]=751&metro[]=752&metro[]=753&metro[]=754&metro[]=755&metro[]=756&metro[]=757&metro[]=758&metro[]=759&metro[]=760&metro[]=761&metro[]=762&metro[]=763&metro[]=764&metro[]=765


Получаем его так



CODE (html):
скопировать код в буфер обмена
  1. Array ( [0] => 747 [1] => 741 [2] => 742 [3] => 743 [4] => 744 [5] => 745 [6] => 746 [7] => 747 [8] => 748 [9] => 749 [10] => 750 [11] => 751 [12] => 752 [13] => 753 [14] => 754 [15] => 755 [16] => 756 [17] => 757 [18] => 758 [19] => 759 [20] => 760 [21] => 761 [22] => 762 [23] => 763 [24] => 764 [25] => 765 )


Как мне красиво пропустить всё через
PHP:
скопировать код в буфер обмена
  1.  
  2. preg_match("/^([\d]{0,4})$/i", ($_GET['metro'] , $metro);
  3.  

и проверить массив на то что в GET не добавили лишние символы которые пойдут в запрос к базе?
koras Отправлено: 07 Августа, 2010 - 21:13:25 • Тема: js+get+url как получить get • Форум: JavaScript & VBScript

Ответов: 3
Просмотров: 2941
В самом JS в виде переменной, если брать пример то в /js/lang0_0-1000.js
koras Отправлено: 07 Августа, 2010 - 21:03:41 • Тема: js+get+url как получить get • Форум: JavaScript & VBScript

Ответов: 3
Просмотров: 2941
Здрасте все.
В принципе, я думаю что я может чтото недогоняю или недопонимаю, проблема заключается в следующем.
Есть файл JS который подключается в документе и исполняется. За примером далеко ходить ненадо, на том же контакте.

CODE (javascript):
скопировать код в буфер обмена
  1. <title>В Контакте | Аудио</title>
  2. <link rel="stylesheet" href="/css/rustyle.css?75" type="text/css" />
  3. <script src="/js/common.js?147"></script>
  4. <script type="text/javascript" src="/js/lang0_0-1000.js?1049"></script>
  5. <link rel="stylesheet" href="/css/audio.css?7" type="text/css" />
  6.  


Задача получить 1049 который передаётся в файл /js/lang0_0-1000.js
Как??


document.location.search не подходит.
У меня в js генерится html в зависимости от действия пользователей, а переносить все в php не красиво получится
koras Отправлено: 22 Мая, 2010 - 13:46:58 • Тема: Проектирование базы mysql и планирование php кода • Форум: Напишите за меня, пожалуйста

Ответов: 7
Просмотров: 68
Цитата:
Может я не в ту сторону думаю?

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

Цитата:
2-я функция будет сортировать наш массив word по значениям нового массива: А - Абрамович, Агузарова, Анджелина..., Б - Бориска, Борщ, Брикет...


Как то не так, мне кажется код будет очень грамоздким и непонятным не только для меня ну и других.

В mysql можно одним запросом убрать все дубли, но я незнаю как выбрать в запросе первую букву или же только сделать двух мерный массив такого вида.


PHP:
скопировать код в буфер обмена
  1. A=> array(
  2.              Абрамович, Агузарова, Анджелина
  3.                   ),
  4. Б=> array(
  5.                 Бориска, Борщ, Брикет
  6.            ),
  7. .....
  8. )
koras Отправлено: 12 Мая, 2010 - 00:41:59 • Тема: Проектирование базы mysql и планирование php кода • Форум: Напишите за меня, пожалуйста

Ответов: 7
Просмотров: 68
И снова я апаю тему ((

Страниц (15): В начало « ... 2 3 4 5 [6] 7 8 9 10 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB