以下是我的代码,用于进行数据库搜索并以此格式返回结果:
- 学院名称1
评级:x / 5
- 学院名称2
评分:x / 5
代码:
search_results.php
public String getCacheValue(String key) throws SQLException{
try{
return cache.get(key);
}catch(ExecutedException ex){
Throwables.propagateIfInstanceOf(ex.getCause(), SQLException.class);
Throwables.propagate(ex);
}
}
我的数据库中有一个评级和机构表,其表格结构如下:
ratings
institutes
正如您所看到的,评级数据库已经存储了一些评级信息。(如果需要,我将分享我编写的代码来注册评级)
我接下来需要做的是提取每个机构的平均评分,并用每个平均值替换x。我在search_results.php写了哪些额外的代码来实现这个目标? 我还想根据平均评分对学院名称进行排序。
答案 0 :(得分:0)
如果我理解正确,您需要做的就是创建一个简单的while循环,该循环遍历为每个成功的“搜索”查询提取的institute_id的所有实例。
while($row = mysqli_fetch_assoc($result)){
$id = $row["institute_id"];
$query2 = "SELECT rating FROM ratings WHERE institute_id ='$id'";
$result2 = mysqli_query($connection, $query2);
//average rating vars
$count = 0;
$sum = 0;
while($row2 = mysqli_fetch_assoc($result2)){
$count++;
$sum += $row2['rating'];
}
$average = $sum / $count;
//display average
.....
}
这应该允许您显示每个机构的平均值,然后如果您想根据DESCENDING或ASCENDING显示它们,只需保存数组中的每个平均值。其余的由您决定,尝试将平均结果保存在JSON数组中,并将每个结果与其机构ID对应部分配对。
示例:
$average = array('institute_x' => 'average')
*确保将'institute_x'替换为id和'average'替换为平均值...