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

Форум MySQL

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

 

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

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

тема: Максимальное значение при выборке с группировкой
 
 автор: CompilR   (17.02.2007 в 04:16)   письмо автору
 
 

Здравствуйте, помогите пожалуйста мне в разрешении следующих вопросов:
1) К примеру мне необходимо сделать так, чтобы данные из <html> формы (которые я беру из текстовых полей) добовлялись "каждый в свою ячеку столбца таблицы". Подскажите пожалуйста как я смогу это сделать. В свою очередь я попробывал сделать через UPDATE:
mysql_query("UPDATE $NameTable SET $NameField='$_POST[$NameField]' WHERE Login=$SesPerem");
Этот запрос работает, но как "мне" кажется немного странно... Потому что когда я прописываю значения в полях формы и далее отсылаю их обработчику, ПО запросу обрабатываются только: либо численные значения, либо значения буквенные с обязательным содержанием в них чисел ?
Т.е. задаю я всем полям числа (любые: 125548) или(1State) в качестве значений по запросу они отсылаются в базу --> таблицу и производится обновление тех записей которые были раньше в ячейка таблицы. Но когда я пытаюсь (по запросу) отправить что-то вроде (State или др), то данные не обновляются ???
Или по другому быть не может и мне нужно использовать INSERT (т.е. брать обсолютно все данные из полей и производить удаление всех старых записей с последующей вставкой новых в таблицу (но это всё получится громоздко...))
2) Ещё подскажите, как можно построить сложный запрос...
Тоже ... к примеру мне нужно получить определённый максимальный результат (по запросу), но над этим результатом мне сначала нужно произвести расчёт функцией "count()".
П:
SELECT Count( Ugoni.KodTransportnogoSredstva ) As KodTr , OpisanieTransporta.KodTransportnogoSredstva
FROM Ugoni , OpisanieTransporta
WHERE Ugoni.KodTransportnogoSredstva = OpisanieTransporta.KodTransportnogoSredstva
GROUP BY Ugoni.KodTransportnogoSredstva
LIMIT 0 , 30
################
Цель моего вопроса:
Можно ли каким-нибудь образом этот запрос преобразовать так, чтобы найти ещё и Max(KodTr) и если это возможно не могли бы "Вы" приписать доп. код.

Заранее Всем Спасибо !

   
 
 автор: cheops   (17.02.2007 в 13:23)   письмо автору
 
   для: CompilR   (17.02.2007 в 04:16)
 

1. Какую структуру имеет таблица $NameTable (получить её можно при помощи запроса SHOW CREATE TABLE)?
2. Отсортируйте результирующую таблицу запроса по полю KodTr - перевая строка в результирующей таблице будет максимальное значение
SELECT Count( Ugoni.KodTransportnogoSredstva ) As KodTr , OpisanieTransporta.KodTransportnogoSredstva
FROM Ugoni , OpisanieTransporta
WHERE Ugoni.KodTransportnogoSredstva = OpisanieTransporta.KodTransportnogoSredstva
GROUP BY Ugoni.KodTransportnogoSredstva
ORDER BY KodTr DESC
LIMIT 0 , 30

PS Под разные вопросы лучше заводить разные темы

   
 
 автор: CompilR   (18.02.2007 в 06:10)   письмо автору
 
   для: cheops   (17.02.2007 в 13:23)
 

ВСЕМ Здравствуйте
Отвечаю на первый Вопрос:
Структура таблицы, которая записана в переменную $NameTable следующая (из запроса SHOW CREATE TABLE):
##########################
CREATE TABLE `users` (\n `Login` varchar(20) NOT NULL default '',\n `Password` varchar(10) NOT NULL default '',\n `Email` varchar(20) NOT NULL default '',\n `ICQ_Number` varchar(15) NOT NULL default '',\n `Hobby` text NOT NULL,\n `Otkuda` varchar(50) NOT NULL default '',\n `KontrQuestion` varchar(50) NOT NULL default '',\n `KontrOtvet` varchar(50) NOT NULL default '',\n PRIMARY KEY (`Login`,`Password`,`Email`)\n) ENGINE=MyISAM DEFAULT CHARSET=cp1251
##########################
Замечание: "Под разные вопросы лучше заводить разные темы"
Ответ: В следующий раз "УЧТУ".
................................................................................
Спасибо Вам большое за готовый запрос по 2-му вопросу !
Скажите, а вот если по этому запросу выбирется (2 или 3 или n+1) MAX результата, то как мне их вывести (т.е. когда эти значения будут равны и они все будут "Максисмальны") ?
"С одним ...Max(результатом).... так: LIMIT 0,1"
Возможно ли так, чтобы именно выбрались MAX значения (т.е. не руками прописывать (LIMIT), а "автоматом" или это нужно при помощи скриптов на PHP делать)???

   
 
 автор: cheops   (18.02.2007 в 12:54)   письмо автору
 
   для: CompilR   (18.02.2007 в 06:10)
 

1) А запросом каким обновляете - действительно странно, скорее всего где-то в PHP-обработчике происходит сбой? Попробуйте вывести SQL-запрос на обновление в окно браузера и выполнить его при помощи какого-нибудь клиента MySQL.
2) Лучше это делать при помощи PHP-скрипта.

   
Rambler's Top100
вверх

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