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

Форум MySQL

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

 

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

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

тема: Не естественный отбор :)
 
 автор: Duran   (09.03.2005 в 08:26)   письмо автору
 
 

3-й день прыгаю с бубном над базой, а суть вот в чем - если заполнять таблицы через phpmyadmin - то нет проблем, но ести заполнять через другой интерфейс (тоже на php) или хотя бы отредактировать цифровую запись, то все.... никакой SELECT в аргументе которого стоит условие на выбор числового поля не работает. Тем неменее, числовые поля с удовольствием складываются и вычитаются. Толи бубен у меня не тот, толи моя софтина как-то глючит в заполнении числовых полей... не могу понять. Выкладываю эту самую базу "живьем", может кто сможет помочь разобраться... Глючат запросы к числовым полям в таблице POSTAVKI .

   
 
 автор: cheops   (09.03.2005 в 09:33)   письмо автору
 
   для: Duran   (09.03.2005 в 08:26)
 

У вас поля имеют тип не INT, а VARCHAR - так нужно? Дело в том, что в полях n_dogs и n_spec вместе с цифрами стоит символ "ф" - если бы тип столбца был INT - вы не смогли бы вставить такое значение.

   
 
 автор: Duran   (09.03.2005 в 10:29)   письмо автору
 
   для: cheops   (09.03.2005 в 09:33)
 

Да, тип символьный, потому, что такие номера (с символом "Ф") мне нужно использовать в полях n_dogs (номер договора) и n_spec (номер спецификации).
Собственно, с этими полями граблей и не возникало, но методом научного тыка было выяснено, что поле summ_p весьма критично к заполнению из разных оболочек.
Например, запрос типа SELECT * FROM POSTAVKI WHERE SUMM_P = 300.67 ничего не отдаст, а запрос к этой же таблице типа : SELECT * FROM POSTAVKI WHERE N_GRZAK= 001 - выдаст соответствующую строчку :(. Почему возникают проблемы с запросом к числовому полю... мне пока не дано понять... :).
Вот исходники проги, которую использовал для работы.

   
 
 автор: Axxil   (09.03.2005 в 12:07)   письмо автору
 
   для: Duran   (09.03.2005 в 10:29)
 

вот так вроде работает SELECT * FROM POSTAVKI WHERE SUMM_P like 300.67
тут косяк по-моему с дробными числами.

   
 
 автор: Duran   (09.03.2005 в 13:14)   письмо автору
 
   для: Axxil   (09.03.2005 в 12:07)
 

Эх... ню, сапасибо тапорик на добром слове :). Ну LIKE - так LIKE %). Была у меня такая мысля, щас потестил ... вроде другие похожие значения при использовании LIKE в этом контексте не выбераются.

   
 
 автор: cheops   (09.03.2005 в 22:54)   письмо автору
 
   для: Duran   (09.03.2005 в 10:29)
 

Хм... ну это как бы обычное дело, сравнивать числа с плавающей точкой оператором = никогда нельзя, так как в каком-нибудь 8 знаке после запятой накапливается ошибка, следует либо действительно LIKE пользоваться, либо
SELECT * FROM POSTAVKI WHERE SUMM_P >= 300.67 AND SUMM_P < 300.68

   
 
 автор: cheops   (09.03.2005 в 22:56)   письмо автору
 
   для: cheops   (09.03.2005 в 22:54)
 

А ещё лучше вместо float(7,2) использовать decimal(7,2), так как в первом случае цифры лишь номинальные и служат для форматирования, а втором железные, так как этот тип специально предназначен для денежных расчётов.

   
 
 автор: Duran   (13.03.2005 в 15:59)   письмо автору
 
   для: cheops   (09.03.2005 в 22:56)
 

Кхм... ай эм сорри :). Ну я и серость :). БА-А-АЛШОЕ сапасибо !. Пойду выменяю у Буратино букварь на курточку. Хм... а может быть великий ХУФУ подскажет место залегания более мануального манускриптика ? Уж больно хочется обладать хотябы частью знаний древних египтян в области MYSQL :).

   
 
 автор: cheops   (13.03.2005 в 17:19)   письмо автору
 
   для: Duran   (13.03.2005 в 15:59)
 

:))) Раскопки следует начать с официального русского мануала MySQL (можно начинать сразу с третьей главы) http://dev.mysql.com/doc/mysql/ru/index.html. Кроме этого, сейчас на русский переведно две замечательные книли Поля Дюбуа (обе объёмом по 1000 страниц)
- MySQL
- MySQL. Сборник рецептов.

PS Лучше по MySQL сейчас на русском ничего нет, но по большому счёту для работы с версиями не привышающими 4.1 больше ничего и не нужно.

   
Rambler's Top100
вверх

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