Html php从mysql获取多行
我想现场直播前6名用户 我想从mysql中提取每行的最高值,以及它们的用户名Html php从mysql获取多行,html,mysql,database,fetch,Html,Mysql,Database,Fetch,我想现场直播前6名用户 我想从mysql中提取每行的最高值,以及它们的用户名 <?php include_once 'config.php'; $query = $config -> prepare(" SELECT `UserID` , `Humanity` , `Headshots` , `Murders` , `BanditsKilled` , `ZombiesKilled` , `pAliveTime`
<?php
include_once 'config.php';
$query = $config -> prepare("
SELECT `UserID`
, `Humanity`
, `Headshots`
, `Murders`
, `BanditsKilled`
, `ZombiesKilled`
, `pAliveTime`
FROM `users`
ORDER
BY `UserID` ASC
LIMIT 10
");
if($query -> execute())
{
$query_results = $query->fetchAll();
}
?>
然后是html
<div class="colw_3 spec-l border-right">
<p></p><p><strong><em><font color="white">Humanity</font></em></strong><br>
</p>
<p><strong><em><font color="white">Headshots:</font></em></strong><br>
</p>
<p><strong><em><font color="white">Bandits Killed:</font></em></strong><br>
</p>
<p><strong><em><font color="white">Murders</font></em></strong><br>
</p>
<p><strong><em><font color="white">Zombies Killed</font></em></strong><br>
</p>
<p><em><strong><font color="white">Alive Time:</font></strong></em><br>
</p>
</div>
<!-- END col_6 -->
<div class="colw_3 paddbott100 spec-r">
<p></p><p><strong><font color="white"> <?php echo $query_result["Humanity"]; ?></font></strong><br>
</p>
<p><strong><font color="white"> <?php echo $query_result["Headshots"]; ?></font></strong><br>
</p>
<p><strong><font color="white"> <?php echo $query_result["BanditsKilled"]; ?></font></strong><br>
</p>
<p><strong><font color="white"> <?php echo $query_result["Murders"]; ?></font></strong><br>
</p>
<p><strong><font color="white"> <?php echo $query_result["ZombiesKilled"]; ?></font></strong><br>
</p>
<p><strong><font color="white"> <?php echo $query_result["pAliveTime"]; ?></font></strong><br>
</p>
</div>
人性
头像:
土匪被杀:
谋杀案
僵尸被杀
活动时间:
但我不知道该如何编写查询,以便获得这些值和这些值的用户名
应该是这样的
人性:5000-用户名的价值。(不含个人价值)
杀死强盗:4-用户名值(另一个用户名,或同一个用户名,取决于在Bandits列中谁的值最高)
当前我的代码按用户ID升序排列 您可以在列上进行循环,并执行按列排序的查询,限制为一行:
$top_用户=[];
$columns=[‘人性’、‘头像’、‘谋杀’、‘强盗技能’、‘僵尸技能’、‘pAliveTime’];
foreach($columns作为$column){
$query=$config->prepare(“按$column DESC LIMIT 1从用户订单中选择UserID、UserName、$column as num”);
如果($query->execute()){
$top_用户[$column]=$query->fetch();
}
}
打印(顶级用户);
可能(理论)输出:
因此,您可以获得以下值:
foreach($column=>$data的顶级用户){
echo$data['UserName'].:'.$data['num'];
}
您可能希望在查询中添加一个WHERE
子句以将其限制为特定的用户ID,或者使用foreach
循环来循环$query\u results
。另外,请注意,HTML5不支持
标记。改为使用CSS进行样式设置:)如果我添加WHERE子句,代码应该是什么样子?因为我无法想象,我需要把什么条件放在哪里?你想得到每一列的第一个顶级用户,对吗?我想得到每一列的最大值,谁拥有它(前约翰有4个,亨利有5个。我想得到5个,亨利)是的,我想得到每一列的第一个顶级用户@Syscalland在HTML部分输入什么。打印(顶级用户)?我给你发了一张图片,看看我到底想做什么。有很多用户,Bob、Bill、Johnson,每个人都有相同或不同的值,但John在Headhsots上的值最大,在被杀的强盗上的值最大。不,你应该使用print\r()
,这只是为了查看你的值。您必须使用答案末尾指出的foreach()
。$top\u users
中的数据必须是您想要的数据:在这里,用户名“foo1”对“Humanity”的值最大,以此类推。错误:尝试在错误中获取非对象的属性,这是在编辑之前。当我将数组放入php时,它会给我语法错误,意外的“Object”(T_STRING),expecting),看起来您也在打印键。我不知道您如何在循环中实现您的echo
。还可以尝试使用fetch(PDO::fetch\u ASSOC)
删除不必要的键。
Array(
[Humanity] => Array([UserId] => 21, [UserName] => foo1, [num] => 5)
[Headshots] => Array([UserId] => 22, [UserName] => foo2, [num] => 4)
[Murders] => Array([UserId] => 23, [UserName] => foo3, [num] => 8)
[BanditsKilled] => Array([UserId] => 24, [UserName] => foo4, [num] => 7)
[ZombiesKilled] => Array([UserId] => 25, [UserName] => foo5, [num] => 5)
[pAliveTime] => Array([UserId] => 26, [UserName] => foo6, [num] => 2)
)