|
|
|
| Здравствуйте!
Есть база данных и в ней таблица в которой есть поле online и оно содержит цифры, вот мне нужно вывести все строки из этой таблицы по убыванию цифр, т.е. так:
id login online
1 test 15
2 test2 1
3 test3 12
4 test4 2
где id => int а login и online => text
Нужно вывести строки в порядке
test
test3
test4
test2
чтобы было по убыванию, но трудность в том, что наверное значение полей online воспринимает как строку ведь а ни как цифру
я пробовал так:
$sql="SELECT * FROM online_table WHERE online>0 ORDER BY online desc";
$result=mysql_query($sql);
while ($row=mysql_fetch_array($result))
{
$login = $row["login"];
echo $login;
}
но выводит в неверном порядке, как-то можно решить эту задачу? | |
|
|
|
|
|
|
|
для: Rembrant
(02.07.2008 в 13:48)
| | Как вариант, сделать нормальную стуктуру. Числа хранятся в своих типах, строки в своих. | |
|
|
|
|
|
|
|
для: Эй
(02.07.2008 в 14:10)
| | я бы сделал, но там хранятся не только числа, точнее в данный момент только числа, но потом будут не только | |
|
|
|
|
|
|
|
для: Rembrant
(02.07.2008 в 14:12)
| | вот когда данные заносятся в поле online то может быть на этом этапе делать проверку на число или нет, только подскажите, как узнать к какому типу принадлежит переменная? | |
|
|
|
|
|
|
|
для: Rembrant
(02.07.2008 в 14:18)
| | gettype - возвращает имя типа переменной
is_numeric - проверяет является ли переменная числом, либо строкой, которая может быть преобразована в число.
var_dump(gettype('abc')); // string
var_dump(gettype('123')); // string
var_dump(gettype(123)); // integer
var_dump(is_numeric('abc')); // false
var_dump(is_numeric('123')); // true
var_dump(is_numeric(123)); // true | |
|
|
|
|
|
|
|
для: Rembrant
(02.07.2008 в 14:12)
| | Очень странно, что например там может быть? | |
|
|
|
|
|
|
|
для: Эй
(02.07.2008 в 14:43)
| | спасибо, навели на settype() который помог | |
|
|
|