|
|
|
| Хочу понять, как правильно указывать имена таблиц и столбцов - в кавычках или без них. Высказано мнение о том, что кавычки служат лишь для исключения смешения обычных обозначений с зарезервированными словами. Но у меня получается непонятно что:
1. Вот так запрос не выполнятся - mysql_fetch_assoc(): supplied argument is not a valid MySQL result
$res = mysql_query("SELECT * FROM 'pokaz_rekl' ORDER BY 'clik' DESC");
while($row = mysql_fetch_assoc($res))
|
2. Вот так ошибки в запросе нет, но и сортировка не выполняется
$res = mysql_query("SELECT * FROM pokaz_rekl ORDER BY 'clik' DESC");
while($row = mysql_fetch_assoc($res))
|
3. Вот так ошибки в запросе нет, но сортировка странная - после 2 идет 10, потом 1
$res = mysql_query("SELECT * FROM pokaz_rekl ORDER BY clik DESC");
while($row = mysql_fetch_assoc($res))
|
В общем, ничего я не пойму...
Гипотеза: может быть, поле, где имеются числа, нельзя задавать через VARCHAR? | |
|
|
|
|
|
|
|
для: Владимир55
(26.02.2009 в 15:36)
| | Вы используете не ту кавычку :-)
Вам нужна обратная.. Вот -> `
С сортировкой не понял. | |
|
|
|
|
|
|
|
для: Root
(26.02.2009 в 15:51)
| | Кавычки исправил - в них и была причина. Спасибо!
А с сортировкой происходит вот что: идут числа по убыванию, но отсортированы они не по-человечески, а по машинному. То есть, если с толбце была последовательность 5, 1, 10, 1, 4, 2, то после сортировки по убыванию получаю 5, 4, 2, 10, 1, 1.
Как это исправить? | |
|
|
|
|
|
|
|
для: Владимир55
(26.02.2009 в 16:03)
| | У Вас там только числа?
Попробуйте
SELECT * FROM pokaz_rekl ORDER BY CAST(clik as UNSIGNED) DESC
|
| |
|
|
|
|
|
|
|
для: Root
(26.02.2009 в 16:20)
| | Там только числа. Теперь всё нормально.
Спасибо! | |
|
|
|
|
|
|
|
для: Владимир55
(26.02.2009 в 16:36)
| | >Там только числа. Теперь всё нормально.
>Спасибо!
А чем обусловлен выбор VARCHAR? На INT поменять не можете? | |
|
|
|
|
|
|
|
для: Root
(26.02.2009 в 16:43)
| | Информация там в виде целых или десятичной дроби типа 1999.7
Если так важно, то могу обойтись целыми числами - десяти разрядов вполне хватит.
Какое поле здесь является более уместным?
С заменой поля исчезнет проблема с сортировкой? | |
|
|
|
|
|
|
|
для: Владимир55
(26.02.2009 в 17:32)
| | да, проблема с сортировкой исчезнет.
Выше в примере с помощью CAST, VARCHAR преобразовывается в инт, и тогда сортируется.
Можно использовать FLOAT. | |
|
|
|
|
|
|
|
для: Root
(26.02.2009 в 17:45)
| | Я тоже подумал о FLOAT. Но, перелистав имеющуюся литературу, так и не понял, как задаются его параметры.
FLOAT(10,3) - это что? Всего 10 десятичных разрядов, из которых три после запятой?
1234567, 321
Или как? | |
|
|
|
|
|
|
|
для: Владимир55
(26.02.2009 в 18:03)
| | да, это верно.
UPD.
также можно задать без параметров, проcто FLOAT | |
|
|
|