$q = mysql_query("SELECT * FROM map WHERE x>=".($user['x']-5)." AND x<=".($user['x']+5)." AND y>=".($user['y']-5)." AND y<=".($user['y']+5)." ORDER BY x ASC, y ASC");
while($mybase = mysql_fetch_assoc($q)){
if($mybase["img"]!=NULL && ($_SESSION["x".$mybase["x"]."y".$mybase["y"]]!=$mybase["img"])){
$all.="<x".$mybase["x"]."y".$mybase["y"].">".$mybase["img"]."</x".$mybase["x"]."y".$mybase["y"].">";
$_SESSION["x".$mybase["x"]."y".$mybase["y"]]=$mybase["img"];
}
}
Вот так выглядит ответ:
<x0y0>trava.gif</x0y0>
<x0y1>trava.gif</x0y1>
<x0y10>trava.gif</x0y10>
<x0y2>trava.gif</x0y2>
...
<x1y1>trava.gif</x1y1>
<x1y10>trava.gif</x1y10>
<x1y2>trava.gif</x1y2>
<x1y3>trava.gif</x1y3>...
<x1y9>trava.gif</x1y9>
<x10y0>trava.gif</x10y0>
<x10y1>trava.gif</x10y1>
<x10y10>les.gif</x10y10>
<x2y1>trava.gif</x2y1>
<x2y10>trava.gif</x2y10>
<x2y2>trava.gif</x2y2>
<x2y3>trava.gif</x2y3>
итд
Как сделать так чтобы после <x1y...> шло не <x10y...> а <x2y...> также по игрику?
Спустя 34 минуты, 54 секунды (30.03.2010 - 01:44) waldicom написал(а):
может быть сделать X и Y численным типом в БД, а не строковым (коим он видимо сейчас является... могу ошибаться)
Спустя 2 часа, 48 минут, 32 секунды (30.03.2010 - 04:33) maxims написал(а):
Цитата (waldicom @ 29.03.2010 - 22:44) |
может быть сделать X и Y численным типом в БД, а не строковым (коим он видимо сейчас является... могу ошибаться) |
они и так числовые, иначе в запросе нужно было бы кавычки ставить....
не могу понять почему так выходит, вроде в запросе сортируешь по возрастанию числовые поля, а выводит отсортированные как строковые....
напиши дамп БД.
Спустя 37 минут, 9 секунд (30.03.2010 - 05:10) dr_Lev написал(а):
Цитата |
иначе в запросе нужно было бы кавычки ставить |
необязательно... мускул не глупый, сам сможет сконвертировать...
А поля скорее всего действительно не числовые.
Попробуй так
ORDER BY CAST(x AS INTEGER) ASC, CAST(y AS INTEGER) ASC
Спустя 17 минут, 27 секунд (30.03.2010 - 05:27) maxims написал(а):
Цитата (dr_Lev @ 30.03.2010 - 02:10) |
необязательно... мускул не глупый, сам сможет сконвертировать... А поля скорее всего действительно не числовые. |
а разве можно сравнивать строки как больше, меньше? он же в услдовии пишет х>=
если можно то как это происходит? по кол-ву символов?
P.S.: у меня мускул ругаца, если кавычек нет....
Спустя 9 минут, 11 секунд (30.03.2010 - 05:36) maxims написал(а):
cам проверил, можно, вроде по количеству символов сравнивает...
тогда если у него строковые, то в принципе запрос в том виде какой он сейчас не правильно работать должен.....
тогда если у него строковые, то в принципе запрос в том виде какой он сейчас не правильно работать должен.....
Спустя 5 часов, 40 минут, 50 секунд (30.03.2010 - 11:17) Jekel написал(а):
ORDER BY CAST(x AS INTEGER) ASC, CAST(y AS INTEGER) ASC
выводит ерор, а x и y сболбец в моей таблице в БД это char
выводит ерор, а x и y сболбец в моей таблице в БД это char
Спустя 1 минута, 11 секунд (30.03.2010 - 11:18) Jekel написал(а):
действительно, поставил INT в БД и зашибись, работает, спасибо ВСЕМ!