我从我的数据库中取出了两个数据并将它们分开,然后将$ Kdr打印出计算出的值.
<?php
$query = mysql_query("SELECT * FROM `high` ORDER BY `$Kdr` DESC LIMIT 20");
while($row = mysql_fetch_array($query)){
if ($row["kills"] != 0) {
$Kdr = $row["kills"] / $row["deaths"];
}
echo "<tr><td><a href='personalhs.php?query={$row["playerName"]}'>".$row['Runecraftlvl']."</a></td><td>".$row['kills']."</td><td>".$row['Runecraftxp']."</td><td>".$Kdr."</td></tr>";
}
?>
Run Code Online (Sandbox Code Playgroud)
忽略$ row ['Runecraftinglvl']和其他人.
基本上我希望我的表通过我在上面声明的变量"$ Kdr"来打印分割数据.
我试过这样做:
$query = mysql_query("SELECT * FROM `high` ORDER BY `" . $kdr . "` DESC LIMIT 20");
Run Code Online (Sandbox Code Playgroud)
还有这个
$query = mysql_query("SELECT * FROM `high` ORDER BY `$Kdr` DESC LIMIT 20");
Run Code Online (Sandbox Code Playgroud)
两者都给我这个错误:警告:mysql_fetch_array()期望参数1是资源,第90行/home/justxpp1/public_html/gxx/highscores.php中给出的布尔值
我究竟做错了什么?谢谢.
您试图在从查询中获得结果后,在SQL查询中对值进行排序,该值仅在php中计算.$Kdr您定义的变量也是一个数字,您不能ORDER在数字上,而是必须在列名称上进行排序.你可以用这样的东西在sql中进行排序
SELECT kills/deaths AS kdr
FROM high
ORDER BY kdr DESC LIMIT 20
Run Code Online (Sandbox Code Playgroud)
编辑:
完整的代码看起来像这样.注意:请仔细阅读原始问题中的第一条评论.使用mysql_函数是非常不明智的.
$query = mysql_query("SELECT playerName, kills, deaths, kills/deaths AS kdr FROM high ORDER BY kdr DESC LIMIT 20)";
while($row = mysql_fetch_array($query)){
$Kdr = $row["kdr"];
echo "<tr>
<td>Name: ".$row["playerName"] ."</td>
<td>Kills ".$row["kills"] ."</td>
<td>Deaths: ".$row["deaths"] ."</td>
<td>Kill death ratio: ".$Kdr ."</td>
</tr>";
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
174 次 |
| 最近记录: |