Я пытаюсь подсчитать, сколько раз определенная статья была оценена, например, сколько раз было users_articles_id
3
было оценено моими членами.Проблемы с PHP и MySQL
Я также пытаюсь подсчитать очки для определенной статьи, например users_articles_id
3
связан с базой данных ratings
его ratings_id
рейтинговых пунктами должна быть в общей сложности 13.
Я интересно, если я был делая это правильно, потому что для меня это выглядит неправильно? Я надеялся, что кто-нибудь поможет мне исправить это? И куда должен идти мой код?
Я использую PHP и MySQL?
Вот мои таблицы MySQL
CREATE TABLE articles_grades (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
ratings_id INT UNSIGNED NOT NULL,
users_articles_id INT UNSIGNED NOT NULL,
user_id INT UNSIGNED NOT NULL,
date_created DATETIME NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE ratings (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
points FLOAT UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (id)
);
Input Database
articles_ratings
id ratings_id users_articles_id user_id date_created
1 3 2 32 2010-01-13 02:22:51
2 1 3 3 2010-01-13 02:23:58
3 2 3 45 2010-01-13 02:24:45
рейтинги
id points
1 10
2 3
3 5
Вот PHP код, который я пытаюсь исправить.
// function to retrieve rating
function getRating(){
$sql1 = "SELECT COUNT(*)
FROM articles_ratings
WHERE users_articles_id = '$page'";
$result = mysql_query($sql1);
$total_ratings = mysql_fetch_array($result);
$sql2 = "SELECT COUNT(*)
FROM ratings
JOIN ratings ON ratings.id = articles_ratings.ratings_id
WHERE articles_ratings.users_articles_id = '$page'";
$result = mysql_query($sql2);
$total_rating_points = mysql_fetch_array($result);
if(!empty($total_rating_points) && !empty($total_ratings)){
// set the width of star for the star rating
$rating = (round($total_rating_points/$total_ratings,1)) * 10;
echo $rating;
} else {
$rating = 100;
echo $rating;
}
}
Когда вы говорите, что пытаетесь «исправить» этот код, в чем проблема, с которой вы сталкиваетесь? – AaronLS
Непонятно, в чем проблема, вы просто говорите «исправить». Можете ли вы подробно описать проблему, связанную с указанным выше кодом. Сказать, что все выглядит неправильно, немного обобщенно. – Camsoft