首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP -表中的位置

问PHP -表中的位置
EN

Stack Overflow用户
提问于 2015-05-25 03:59:29
回答 2查看 319关注 0票数 0

如何找到某一行在我的数据库表中的位置?

在我的数据库中,我有一堆来自游戏的玩家。它们有ID、name、level、world等列。

我想按级别对它们进行排序,并查看它们在列表中的位置。

到目前为止,我已经尝试过了,但它只打印出0(我设置的起始值)。它似乎没有遍历。

在此之前,我确保名称存储在$name中。

代码语言:javascript
复制
$query = "SELECT * FROM rookstayers ORDER BY level DESC";

$globalPos = 0;
$result = mysql_query($query);
$num = mysql_numrows($result);
$i = 0;
while($i < $num) {
    $posName = mysql_result($result, $i, 'name');
    if($posName == '$name')
    {
        $globalPos = $i;
        break;
    }

    $i++;
}

如果我的表看起来像这样(按级别排序后):

代码语言:javascript
复制
name - level
Joe - 50
Jacob - 47
Sarah - 34
Anna - 19

那么“莎拉”就是3号,安娜4号,等等

我希望位置号在$globalPos中。

我只找到了这方面的纯SQL代码,但我希望它在PHP中。是不是在PHP中做不到呢?

EN

回答 2

Stack Overflow用户

发布于 2015-05-25 05:25:48

我不确定这是否是唯一的问题:

如果使用单引号',则不会为变量解析字符串。如果要将存储在$name中的字符串与存储在$posName中的字符串进行比较,则应使用$posName === $name。您也可以使用$posName === "$name",但双引号是不必要的。

还要注意,mysql函数已弃用。您应该改用mysqli或PDO_MySQL。(参见Choosing an API)

票数 0
EN

Stack Overflow用户

发布于 2015-05-25 08:37:34

代码语言:javascript
复制
<?php

/*

CREATE TABLE results
(name VARCHAR(12) NOT NULL PRIMARY KEY
,score INT NOT NULL
);

INSERT INTO results VALUES
('Anna',19),
('Jacob',47),
('Joe',50),
('Sarah',34);

*/

include('path/to/connection/stateme.nts');

$query = "

SELECT name, score FROM results ORDER BY score DESC;

";

$result = mysqli_query($conn,$query);

$i=1;

while($row = mysqli_fetch_assoc($result)){

echo $i." ".$row['name']." ".$row['score']."<br/>\n";
$i++;
};

?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30427753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档