gpt4 book ai didi

php - 如果有多个结果,则对数据库中一个字段的值进行排名,并仅返回排名最高/最低的值

转载 作者:太空宇宙 更新时间:2023-11-03 11:08:51 25 4
gpt4 key购买 nike

我正在尝试找到执行此操作的最佳方法,但不确定如何操作。有人可以帮帮我吗?

假设我有 4 个标记 - 金牌、银牌、铜牌和开发中这些标记之一将是数据库中 $gsb['gsb'] 的值。

下面的代码获取类(class)并回显 img 和链接。我正在努力解决的问题是如何对上面的 4 个值进行排名,这样如果返回的结果不止一个,它将根据所选排名获得最高或最低值,并且只回显那个结果/img

希望这是清楚的。如果有任何帮助/指导,我将不胜感激。

        $metacourses = mysql_query("SELECT * FROM mdl_course_meta where parent_course = $courseid");
while($parentcourse = mysql_fetch_assoc($metacourses)){
//Select GSB for course
$parentcourseid = $parentcourse['child_course'];
$gsb = mysql_fetch_array(mysql_query("SELECT * FROM mdl_gsb_content where course = $parentcourseid"));


//Used for $img name
if ($gsb['gsb']=="") {$thegsbscore = "in_development";}
else {$thegsbscore = $gsb['gsb'];}

if ($viewgsb == 'Yes'){
$img = '<div align="center"><img src="'.$CFG->wwwroot.'/blocks/gsb/images/'.strtolower($thegsbscore).'.png" width="90" height="98"></div>';
$link = '<p align="center"><b><a href="'.$CFG->wwwroot.'/blocks/gsb/gsb_explained.htm" target="_blank">How can I improve my course medal?</a></b></p>';
}
else {
$img = '';
$message = '';
$viewgsb = '';
$link = '';
}
}

$this->content = new stdClass;
$this->content->text = $message . $img . $link;
$this->content->footer = '';
return $this->content;
return $this->content->text;

最佳答案

为您的值(value)观分配权重,最好在表格中。

像这样使用:

TABLE_WEIGHT (It's a better idea to store these in a separate table, that way you can always add/delete more scores, irrespective of other tables)

ID(PRIMARY KEY) SCORE_NAME(VARCHAR) SCORE_WEIGHTAGE(INT/ENUM)
1 In Development 1
2 Bronze 2
3 Silver 3
4 Gold 4

现在,您始终可以在第二个查询中使用 SQL JOIN 对数据进行排序。此外,如果有多个结果,您可以使用 PHP 的 usort 来过滤结果。

希望这对您有所帮助。

关于php - 如果有多个结果,则对数据库中一个字段的值进行排名,并仅返回排名最高/最低的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9990092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com