ОК - я сразу перейду к делу - вот вопрос PHP-кода:
<h2>Highest Rated:</h2>
<?php
// Our query base
$query = $this->db->query("SELECT * FROM code ORDER BY rating DESC");
foreach($query->result() as $row) {
?>
<h3><?php echo $row->title." ID: ";echo $row->id; ?></h3>
<p class="author"><?php $query2 = $this->db->query("SELECT email FROM users WHERE id = ".$row->author);
echo $query2->row('email');?></p>
<?php echo ($this->bbcode->Parse($row->code)); ?>
<?php } ?>
Извините, это немного грязно, это все еще черновик. Во всяком случае, я исследовал способы использования системы Ratings - ранее у меня было одно поле 'rating', как вы можете видеть по SELECT * FROM кода ORDER BY rating DESC. Однако я быстро понял, что рассчитать такие средние значения было невозможно, поэтому я создал пять новых столбцов - рейтинг1, рейтинг2, рейтинг3, рейтинг4, рейтинг5. Итак, когда 5 пользователей оценивают что-то 4 звезды, rating4 говорит 5 ... это имеет смысл? В каждом столбце ratingx указывается количество раз, когда был присвоен рейтинг.
Так или иначе: у меня есть этот оператор SQL:
SELECT id, (ifnull(rating1,0) + ifnull(rating2,0) + ifnull(rating3,0) + ifnull(rating4,0) + ifnull(rating5,0)) /
((rating1 IS NOT NULL) + (rating2 IS NOT NULL) + (rating3 IS NOT NULL) + (rating4 IS NOT NULL) + (rating5 IS NOT NULL)) AS average FROM code
Снова грязно, но эй. Теперь мне нужно знать, как я могу включить этот оператор SQL в мой скрипт? В идеале вы могли бы подумать, что общий запрос будет «ВЫБРАТЬ * ИЗ КОДА ORDER BY ( этот действительно длинный запрос, который я только что сформулировал ) DESC», но я не совсем понимаю, как это работает ... как мне это сделать? Это? Запрос, сохранить результат в переменной, что-то вроде этого?
Если это не имеет смысла, извините! Но я очень ценю помощь :)
Jack