我正在为他想要开设的潜在餐馆的邻居设计一个网站。我需要为推荐/评论创建一个页面。我想编码它以便星号的数量在SQL中,我只是不知道该怎么做。
基本上我正在寻找的是确定评级字段(1-5)的整数的方法,并且对于每个数字,显示星形图像。
所以:
if rating = 1, display star.png once
if rating = 2, display star.png twice
...
if rating = 5, display star.png five times
我只是不确定如何编写代码来执行此操作。
该网站使用PHP和CSS编写。我想避免使用JQuery,Javascript,.NET等等,因为我对它们并不熟悉,并且会保持网站的最新状态。
这是我到目前为止所做的,但是它运行不正常,我收到语法错误:
$result = mysqli_query($con,"SELECT * FROM Reviews");
while($row = mysqli_fetch_array($result))
{
IF (Rating = "1"()){
echo '<img src="star.png">' . }
ELSE IF (Rating = "2"()){
echo '<img src="star.png"><img src="images/star.png">' . }
Else IF (Rating = "3"()){
echo '<img src="star.png">star.png"><img src="images/star.png">' . }
ELSE IF (Rating = "4"()){
echo '<img src="star.png"><img src="images/star.png">star.png"><img src="images/star.png">' . }
ELSE
echo '<img src="star.png"><img src="images/star.png">star.png"><img src="images/star.png"><img src="images/star.png">' .
"<br/> <b>" .
$row['Name'] .
"</b> <em>" .
$row['City'] . $row['State'] . $row['Country'] . "</em><br/>" .
$row['Review'] . "<br/> <hr> <br/>"
}
?>
答案 0 :(得分:0)
使用select
语句获取数据库中某个地点的评分。
将结果存储在php变量中(让我们称之为$rating
)
使用php逻辑根据$rating
的值输出星数(显然是html)。
希望有所帮助:)
答案 1 :(得分:0)
我会为这个想法推荐3个表。
用户表 UserRatings表 菜表
用户表用于存储它。用户信息。可能是用户名,密码,名字,姓氏等。该表应该有一个主键。称之为UsersID。它应该自动递增并且对于每一行都是唯一的。
Dish表是下一个。把菜名放进去。它也应该有一个主键。称之为DishID。
最后是UserRatings表将存储UserRatingsId,Rating,InsertTimeStamp,UpdateTimeStamp。
答案 2 :(得分:0)
使用循环根据您的评分输出您的HTML。
$rating = 4; //Figure this out in your script and set accordingly
for($i = 0; $i < $rating; $i++) {
echo '<img src="star.png" />';
}
应该为你打印出四颗星。
答案 3 :(得分:0)
朋友的帮助:
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$starCount = 0;
$result = mysqli_query($con,"SELECT * FROM Reviews");
while($row = mysqli_fetch_array($result)) {
$starCount = $row['Rating'] ;
while ($starCount > 0) {
echo '<img src="images/star.png">';
$starCount -- ;
}
$starCount = 0;
echo "<br/> <b>" . $row['Name'] . "</b> - <em>" .
$row['City'] .", ". $row['State'] ." ". $row['Country'] . "</em><br/>" .
$row['Review'] . "<br/> <hr> <br/>" ;
}
?>
答案 4 :(得分:-1)
$number=$row->rating ;
$middle="";
$first="<td width='200' align='left'>";
for($x=1;$x<=$number;$x++) {
$middle=$middle.img($fullimage_properties);
}
if (strpos($number,'.')) {
$middle=$middle.img($halfimage_properties);
$x++;
}
while ($x<=5) {
$middle=$middle.img($blankimage_properties); ;
$x++;
}
echo $last=$first.$middle."</td>";