2014-01-13 1 views
0

Просто хочу быстро сказать, что я не «программист php/sql», я понимаю основы, но не более продвинутые вещи, которые дают мне (например, сейчас) Извините за мой плохой английский, кстати, им от sweden :)Получите значения из двух столбцов каждой строки, округлите их и, наконец, отсортируйте их

Okey, я собираюсь создать базу данных Dreamcast онлайн, где каждый может найти конкретную информацию о таких играх, как количество блоков VMU для конкретной игры требуется сохранить или просто отсортировать игры, поддерживающие адаптер VGA, и так далее. (сайт можно найти на dreamcastdb.com, пожалуйста, остерегайтесь его всего на пару дней, чтобы он еще далек от завершения, каждая игра со сновидениями там, выпущенная и неизданная, будет на этом сайте, прежде чем я умру, это обещание)

У меня есть таблица «игр» с одной строкой для каждой игры, так как сейчас у меня только 3 игры в базе данных. в строках у меня есть 2 столбца, представляющих интерес для этого вопроса, nrvotes и sumvotes, каждый раз, когда посетитель голосует за игру, nrvotes будут +1, а сумма увеличивается с оценкой, которую он проголосовал (1-10).

Я хочу на своем index.php (первая страница), чтобы показать 3 игры с наивысшей оценкой, означающей, что я должен проследить все игры в своих играх db, и «round» значение, которое я получаю от sumvotes/nrvotes, тогда наконец, сортировать их, наконец, я хочу показать верхнюю часть.

На данный момент мой код выглядит так, но он вообще не работает.

query = select from * games order by (round ($sumvotes/$nrvotes,2) DESC LIMIT 3;"; 

Я не понимаю, как разместить код нужного PHP здесь, я был вызван с сообщением об ошибке, но плохо думаю, что вы получили мою точку зрения, этот код разве делать то, что я хочу.

Okey похоже, что на данный момент, им известно, что если это сработает, оно отобразит только обложку игр и в правильном порядке (наивысший балл сверху), так как на данный момент больные показывают только крышки наконец, плохо добавьте названия и оценку курса.

Я бы очень признателен за помощь более опытных программистов php/sql.

Спасибо заранее, Флориан из Швеции существует Dreamcast Fanboy :)

+0

Чтобы прояснить мою проблему немного больше: База данных будет содержать более 400 Dreamcast игры, когда все завершено, каждая строка в этой базе данных одна игра. В каждой строке есть 2 колонки, которые интересны в этом вопрос, NRVOTES и SUMVOTES, каждый раз посетитель голосов NRVOTES будет увеличиваться с одним, а SUMVOTES будет увеличить с 1-10 в зависимости от того, что проголосовал посетитель. Код php, который я хочу использовать, будет получать значение SUMVOTES, разделенное на NRVOTES (SUMVOTES/NRVOTES), а затем показывает только 3 самых высоких рейтинга на 2 десятичных числа. – user3190247

ответ

0

Вы можете попробовать работать с массивом. Сделайте цикл while, а затем проверьте, превышает ли количество голосов, чем 3 в базе данных. Если это так, поместите его в массив, перезаписав его.

Что-то в этом роде?

Удачи вам в этом! :)

0

Разделение целого на целое число дает целое число как результат. Если преобразовать один из голосов сосчитать до десятичного знака, оно должно быть хорошим

SELECT * FROM games order by round(decimal(10,2),sumvotes/numvotes) desc 
Смежные вопросы