Koenig, то есть ошибка не из-за моего кода?
Рад включить, полезет куча ошибок(
mRWiNeT, включи чтоб понять ошибку. и выключить когда поправить, можно настроить на вывод только критических ошибок. пропускать нотисы
# Koenig (10.08.2016 / 19:00)
mRWiNeT, дробь обработать intval
2.22 -> 2
ненадо.
в его случае логичнее умножить значение на 100 и работать с целыми сотнями, а не с дробными 0.23 или округленными нулями где 0.23 станет равно 0.45 и 0.99 ибо все это будет нулями
а ошибка вот тут, кстати
ORDER BY `$statica`"
допустим у тебя $statica = 2; (очевидно ей присваивается значение переменных с которыми ты работаешь как с интегером, значит значение переменной будет интегером, берем от балды двойку)
прочти свой запрос?
SELECT COUNT(*) FROM `users` ORDER BY `2`"
т.е. ты пытаешься сортировать по столбцу "2" которого у тебя в таблице нет (что логично)
если вдруг непонял, тебе надо указать имя поля, а ты туда переменную засовываешь, в которой число (ни каким боком к ИМЕНИ поля)
да и еще.
к count() запросе не должно быть сортировки если нет условия выборки (WHERE)
потому что считай ты с конца или с начала, 32 записи останутся 32мя записями, добавив сортировку ты просто замедлил запрос ненужным условием
з.ы. теперь имхо.
если тут на сайте подсветка кода выделяет переменную жирным, считайте вы наговнокодили.
это не ошибка, вы просто заставили парсер искать в тексте переменную. парсинг это всегда много ресурсов и времени. они вроде мизерные, но иногда их мизер больше чем мизер всего остального вместе взятого
ramzes, $statica это не число, $statica это столбец в базе, то есть после функции должно выбрать будет сортироваться по рейтингу или балам.
Я как будет время проверю свой код, идея появилась
# mRWiNeT (11.08.2016 / 21:55)
ramzes, $statica это не число, $statica это столбец в базе, то есть после функции должно выбрать будет сортироваться по рейтингу или балам.
Я как будет время проверю свой код, идея появилась
$statica это не число, $statica это столбец в базе
А как же тогда обрабатываются эти условия?
if ($rating == 0 && $bonus > 0) {
$statica = $bonus;
} elseif ($rating > 0 && $bonus == 0) {
$statica = $rating;
}
Если сравнение идёт с нулём, то в переменную $statica должно присвоиться число. Распечатай эту переменную после условия, и посмотри, что в ней хранится.
Во вторых, если я не ошибаюсь, конструкция
return (
return $statica;) прерывает выполнение скрипта, и всё, что ниже return'а, выполняться не будет. А это означает, что строки
$c_p = mysql_result(mysql_query("SELECT COUNT(*) FROM `users` ORDER BY `$statica`"),0);
постраничная нафигация
$q = mysql_query("SELECT * FROM `users` ORDER BY `$statica` DESC LIMIT $start, ". $p_page);
while ($ank = mysql_fetch_assoc($q)) {
вывод анкеты
}
никогда не выполнятся.
да.return останавливает любое выполнение кода в текущей области видимости, но я думаю это он так криво постит разные куски кода в одну кучу
# mRWiNeT (11.08.2016 / 21:55)
ramzes, $statica это не число, $statica это столбец в базе, то есть после функции должно выбрать будет сортироваться по рейтингу или балам.
Я как будет время проверю свой код, идея появилась
ты не читаешь свой код, ощущение что ты его не понимаешь.
прочти его как текст, читай переменные как их значения, произнеси весь этот текст вслух (читай по смыслу) if else как "если то"
select как "выбрать" и т.д. и ты сам поймешь где у тебя логическая ошибка о которой я сказал, "петя каждый день 24" - чувствуешь, некий бред в этом предложении? вот и в твоем коде он тоже есть, найди и справь его