在sql中显示数字为图像

时间:2013-08-10 03:11:13

标签: php css sql database

我正在为他想要开设的潜在餐馆的邻居设计一个网站。我需要为推荐/评论创建一个页面。我想编码它以便星号的数量在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/>"
  }
?>

5 个答案:

答案 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>&nbsp;-&nbsp;<em>" . 
$row['City'] .",&nbsp;". $row['State'] ."&nbsp;". $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>";