форум вебмастероff на AlfaSpace.NET

Ubuntu и Linux |реактивный бесплатный хостинг | Киноклуб. ВСЁ БЕСПЛАТНО!
база знаний хостинга | правила форума

  Начало ° Ответить ° Статистика ° Опрос ° Регистрация ° Поиск ° FAQ °
Форум вебмастеров на AlfaSpace.NET / Создание сайта / Проблема с запросом SQL
Автор Сообщение
acsid
Alfa Guru

2410
# Дата: 18 Апр 2008 22:52 ° Поправил: acsid


Делаю рейтинг фотографий.
В БД Есть таблица(условно):
foto|rating|count|score








Где:
rating значения от 1 до 5
count значения от 0 до бесконечности (колличество проголосовавших)
score значения от 0 до бесконечности (общее колличество баллов)

Ситуация
Предположим есть в этой таблице несколько фотографий:

 
foto|rating|count|score 
f1   |5      |9       |45 
f2   |5      |19      |95 
f3   |5      |20      |100 
f4   |5      |21      |105 









Далее я делаю запрос с сортировкой

 
SELECT * FROM `bg_grafiks` WHERE `rating`='5' ORDER BY `score` DESC 









и мне выдаёт значения:

 
foto|rating|count|score 
f2   |5      |19      |95 
f1   |5      |9       |45 









Короче проблема в том, что когда score больше чем 99, запрос его игнорирует. Почему это происходит?

Константин
TorrentMaster

3497
# Дата: 19 Апр 2008 00:56


Парочка встречных вопросов:
Почему в where условии идет проверка по полю rate вместо rating и сравнение со строкой '5' вместо числа 5?
Какой тип и ограничение на длину имеет поле score?

acsid
Alfa Guru

2410
# Дата: 19 Апр 2008 10:48


Константин
» Константин
Почему в where условии идет проверка по полю rate вместо rating и сравнение со строкой '5'

накладочка)

» Константин
со строкой '5' вместо числа 5

так .. скорее всего это первый баг

» Константин
Какой тип и ограничение на длину имеет поле score

varchar(100)

Константин
TorrentMaster

3497
# Дата: 19 Апр 2008 11:28


acsid
Сделай integer - иначе он у тебя во-первых выбирает не то, что ты хочешь, а во-вторых сортирует как строки - поэтому скажем 100 у тебя будет "меньше" 99. Если у тебя 999 нет score, то ты не увидишь вначале следующие строки, которые ожидаешь + наверняка у тебя там еще Limit стоит, т.ч. вообще не увидишь эти строки

acsid
Alfa Guru

2410
# Дата: 19 Апр 2008 12:18


Константин
limit не стоит. Поставил INT ,всё запаботало. Спасиба

Ваш ответ

Quote  Bold Style  Italic Style  Underlined Style  URL Link  Email Link  Script AutoTab  Preformatted Text  Отменить *Что это?
... Запретить смайлы


Перед отправкой "нелатинского" текста проверьте кодировку броузера!
 » Логин  » Пароль 
 
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:23977, gzipped size:7915

Mp3 Download || Webs Studio™ || Song's Lyrics
eXTReMe Tracker Rambler's Top100 Рейтинг@Mail.ru Форум ТвойWeb [Valid RSS]