这可能是PHP初学者的问题,我想。很抱歉,问一些对大多数人来说可能非常明显的事情。我正在通过URL运行从Linden Lab Second Life服务器到外部SQL数据库的PHP请求。我在URL中发送了Player-Key。然后,来自SQL数据库的http响应应该给出游戏中玩家的等级。
我编写了这段代码片段,大部分时间都是为了它的目的:
<?php
//You need to insert your specific data for "DB_HOSTNAME","DB_USERNAME","DB_PASSWORD","DB_DATABASE"
$con=mysqli_connect("DB_HOSTNAME","DB_USERNAME","DB_PASSWORD","DB_DATABASE");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
//use the parameters in the http-link to set the $ variables and real escape them for security reasons (against injection)
$PlayerKey = mysqli_real_escape_string($con, $_GET['PlayerKey']);
//Define which entry you chose from the database
$readthis = mysqli_query($con, "SELECT users_2015.Rank FROM users_2015 WHERE users_2015.PlayerKey = '$PlayerKey'");
//Fetch the information array
while($output = mysqli_fetch_array( $readthis )) {
// Print out the contents of each row into a table
echo $output['Rank'];
}
//close connection to database
mysqli_close($con); ?>
然而,在Second Life中有一些玩家已多次购买游戏。所以他们有几个级别。在这种情况下,不仅显示一个排名编号,而且所有不同的返回字符串都显示为一个大字符串。如果某人已经购买了三次游戏并且他/她的排名是#199,#7和#22,那么所给出的http响应将是&#34; 199722&#34;。
现在我的问题:如何更改代码,以便只显示最后一个条目(在本例中为#22)?或者:是否还有一种方法只显示具有最低值(=最佳等级)的条目,在这种情况下为#7?
非常感谢帮助PHP新手! :)
答案 0 :(得分:2)
请勿使用,因此不会为您循环排名,而是:
$output = mysqli_fetch_array( $readthis );
echo $output[count($output)-1]['Rank'];
答案 1 :(得分:2)
这更适合作为SQL问题:
SELECT users_2015.Rank FROM users_2015 WHERE users_2015.PlayerKey = '$PlayerKey' ORDER BY users_2015.Rank LIMIT 1