PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (15): В начало « ... 2 3 4 5 [6] 7 8 9 10 ... » В конец
Найдено сообщений: 224
koras
Отправлено: 30 Августа, 2010 - 20:46:53 • Тема: Подсчет суммы, количества и название тем. • Форум: SQL и Архитектура БД
Ответов: 9 Просмотров: 61
Всё, тема клозед как всегда.
Спасибо моему другу VDShark , за помощь. Хороший специалист в SQL с большой буквы )
Решение
CODE (
SQL ):
скопировать код в буфер обмена
SELECT
id, nametheme AS name,
( SELECT AVG( `rating` )
FROM `rating` WHERE `rating` . `theme` = theme. id) AS rating,
( SELECT COUNT( `theme_id` )
FROM `comments` WHERE `comments` . `theme_id` = theme. id) AS comments
FROM `theme`
koras
Отправлено: 30 Августа, 2010 - 11:36:50 • Тема: Подсчет суммы, количества и название тем. • Форум: SQL и Архитектура БД
Ответов: 9 Просмотров: 61
Цитата: Для решения вашей задачи возможно использовать набор вложенных SQL-запросов
Получается два запроса,
Здесь выбираем id темы, рейтинг темы, имя темы привязка id темы
CODE (
SQL ):
скопировать код в буфер обмена
SELECT
`theme` . `id` AS id,
AVG( `rating` . `rating` ) AS rating,
`theme` . `nametheme` AS name
FROM `theme` JOIN `comments` ON `theme` . `id` = `comments` . `theme_id`
JOIN `rating` ON `theme` . `id` = `rating` . `theme`
GROUP BY `theme`
ORDER BY `theme` . `review` DESC
Здесь выбираем id темы, общее количество комментариев привязка id темы
CODE (
SQL ):
скопировать код в буфер обмена
SELECT
`theme` . `id` AS id,
count( `comments` . `theme_id` ) AS comments
FROM `theme` JOIN `comments` ON `theme` . `id` = `comments` . `theme_id`
GROUP BY `texttheme`
ORDER BY `theme` . `review` DESC
То есть общее у обеих запросов `theme`.`id`
Но в под запросе можно использовать только один параметр, а у меня там и там на выходе 2 и это необходимо
koras
Отправлено: 29 Августа, 2010 - 16:26:30 • Тема: Подсчет суммы, количества и название тем. • Форум: SQL и Архитектура БД
Ответов: 9 Просмотров: 61
CODE (
SQL ):
скопировать код в буфер обмена
SELECT
SELECT
AVG( `rating` . `rating` ) AS rating,
`theme` . `nametheme` AS name,
count( `comments` . `theme_id` ) AS comments
FROM `theme` JOIN `comments` ON `theme` . `id` = `comments` . `theme_id`
JOIN `rating` ON `theme` . `id` = `rating` . `theme`
WHERE `theme` . `active` = '1' AND
`comments` . `invait` = '1' AND
`rating` . `activ` = '1'
GROUP BY `theme`
ORDER BY `theme` . `review` DESC
Только коменты не правильно отображаются
koras
Отправлено: 29 Августа, 2010 - 15:48:06 • Тема: Подсчет суммы, количества и название тем. • Форум: SQL и Архитектура БД
Ответов: 9 Просмотров: 61
Есть база. приведу часть для наглядности
CODE (
SQL ):
скопировать код в буфер обмена
CREATE TABLE IF NOT EXISTS `comments` (
`id` int( 11) NOT NULL AUTO_INCREMENT ,
`userscomment` int( 11) NOT NULL ,
`datetime` int( 11) NOT NULL ,
`textcomments` text NOT NULL ,
`invait` int( 2) NOT NULL DEFAULT '1' ,
`theme_id` int( 6) NOT NULL ,
`ip` varchar( 15) NOT NULL ,
`bad_comment` int( 2) NOT NULL DEFAULT '0' ,
PRIMARY KEY ( `id` )
) ENGINE= MyISAM DEFAULT CHARSET= cp1251 AUTO_INCREMENT = 14 ;
-- --------------------------------------------------------
--
-- Table structure for table `rating`
--
CREATE TABLE IF NOT EXISTS `rating` (
`id` int( 6) NOT NULL AUTO_INCREMENT COMMENT 'id' ,
`user` int( 6) NOT NULL COMMENT 'пользователь' ,
`time` int( 6) NOT NULL COMMENT 'время' ,
`rating` int( 2) NOT NULL COMMENT 'рейтинг' ,
`activ` int( 1) NOT NULL DEFAULT '1' COMMENT 'активен ли коментарий' ,
`theme` int( 6) NOT NULL COMMENT 'id темы' ,
`comment` int( 6) NOT NULL ,
`ip` varchar( 15) NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE= MyISAM DEFAULT CHARSET= cp1251 AUTO_INCREMENT = 18 ;
--
-- --------------------------------------------------------
--
-- Table structure for table `theme`
--
CREATE TABLE IF NOT EXISTS `theme` (
`id` int( 11) NOT NULL AUTO_INCREMENT ,
`rubric` int( 11) NOT NULL ,
`nameuser` int( 10) NOT NULL ,
`nametheme` varchar( 256) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL ,
`texttheme` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL ,
`date` int( 10) NOT NULL ,
`active` int( 1) NOT NULL DEFAULT '1' ,
`review` int( 7) NOT NULL DEFAULT '0' ,
PRIMARY KEY ( `id` )
) ENGINE= MyISAM DEFAULT CHARSET= cp1251 AUTO_INCREMENT = 4 ;
Задача, из данной базы сделать подсчет средней суммы рейтинга (`rating`.`rating` ) и общая сумма комментариев(`comments`.`theme_id` ) к каждой теме и название темы(`theme`.`nametheme` ).
Я уже много перебрал запросов, но наличей малого опыта работы с базами даёт своё понимание.
Пример моих запросов.
CODE (
SQL ):
скопировать код в буфер обмена
SELECT
( sum( `rating` . `rating` ) / count( `rating` . `rating` ) ) AS rating,
`theme` . `nametheme` AS name,
( count( `comments` . `theme_id` ) ) AS comments
FROM `theme` JOIN `comments` ON `theme` . `id` = `comments` . `theme_id`
LEFT JOIN `rating` ON `theme` . `id` = `rating` . `theme`
WHERE `theme` . `active` = '1' AND
`comments` . `invait` = '1' AND
`rating` . `activ` = '1'
Но это не то, он пишет всего название одной темы и подсчет колличества коментов не каждой темы отдельно а общее количество всех и название одной темы.
(Добавление)
Дпополню, это обший подсчёт статистики на главную страницу, с
название темы = рейтинг темы = сколько комментов к теме
koras
Отправлено: 24 Августа, 2010 - 21:41:40 • Тема: Проблема отправки данных из формы • Форум: Программирование на PHP
Ответов: 11 Просмотров: 678
Толи я туплю, толи мне мерещилось.
Кажется код был другой, то есть..
при вашем коде если я не ошибаюсь, всё должно работать. если не работает то приведите мне вывод строчки.
и HTML кода ?что у вас получается из всего что вы навояли, то есть именно формы.
Для моего понимания
koras
Отправлено: 24 Августа, 2010 - 20:58:13 • Тема: Проблема отправки данных из формы • Форум: Программирование на PHP
Ответов: 11 Просмотров: 678
Какой страшно непонятный код. Отформатируйте плиз...
Цитата: оказывается строка $query1_row['p_name']?
А вы что хотите увидеть ?
PHP:
скопировать код в буфер обмена
<form name="forma1" method="post" action="index.php?page=3">
<select name=pastor size=1>
<?PHP
for ( $i = 1 ; $i <= $query1_count ; $i ++ )
{
if ( $pastor == $query1_row [ 'id' ] )
{ $ech = " selected" ; }
else
{ $ech = "" ; }
echo "<option valuе=" . $query1_row [ 'id' ] . $ech . ">" . $query1_row [ 'p_name' ] . "</option>" ;
}
?>
</select>
<input name="start" type="submit" value="выбрать">
</form>
koras
Отправлено: 20 Августа, 2010 - 21:55:22 • Тема: массив пропустить через preg_match • Форум: Программирование на PHP
Ответов: 4 Просмотров: 463
как красиво сделать.
Есть массив, который передаётся через GET вида
CODE (
html ):
скопировать код в буфер обмена
&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 ):
скопировать код в буфер обмена
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 )
Как мне красиво пропустить всё через
и проверить массив на то что в GET не добавили лишние символы которые пойдут в запрос к базе?
koras
Отправлено: 07 Августа, 2010 - 21:03:41 • Тема: js+get+url как получить get • Форум: JavaScript & VBScript
Ответов: 3 Просмотров: 2941
Здрасте все.
В принципе, я думаю что я может чтото недогоняю или недопонимаю, проблема заключается в следующем.
Есть файл JS который подключается в документе и исполняется. За примером далеко ходить ненадо, на том же контакте.
CODE (
javascript ):
скопировать код в буфер обмена
<title>В Контакте | Аудио</title>
<link rel="stylesheet" href="/css/rustyle.css?75" type="text/css" />
<script src= "/js/common.js?147" ></ script>
<script type = "text/javascript" src= "/js/lang0_0-1000.js?1049" ></ script>
<link rel="stylesheet" href="/css/audio.css?7" type="text/css" />
Задача получить 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 можно одним запросом убрать все дубли, но я незнаю как выбрать в запросе первую букву или же только сделать двух мерный массив такого вида.
Страниц (15): В начало « ... 2 3 4 5 [6] 7 8 9 10 ... » В конец
Powered by ExBB FM 1.0 RC1. InvisionExBB