如何从输入的数据中获取行号(sql 和 php)

How to get row number from inputted data (sql and php)

我遇到这个问题有一段时间了,我似乎无法在 google 上找到正确的答案。不知道是不是我运气不好。

无论如何,如何从我从 PHP 文本字段输入的特定记录中获取行号,例如:

ID          NAME
11111       john
11112       roger
11113       ellis
11114       jack
11115       wendy

所以如果我输入 11113,输出会像 "this ID is at number 3"。

这是我的代码:

$id=$_POST['id'];
$query="SELECT COUNT(*) from employee where id like '%$id%'";
$num=mysql_query($query);
echo "this ID is at number $num";

谁能指出我哪里错了?

这是一个查询示例,说明如何在不添加另一列计数的情况下执行此操作:

SELECT e.*,b.count FROM employee as e, (SELECT COUNT(*) as count FROM employee WHERE id <= 3) as b WHERE e.id = 3

使用另一个 select 查询来计算 id 小于请求的 id 的所有行

或者如果您只想要行的偏移量而不需要其数据:

SELECT COUNT(*) as count FROM employee WHERE id <= 3
  1. 首先,您应该 select * 来自员工 table

  2. 然后将结果解析为数组,

  3. 扫描上面的数组(step2)并找到你的值(11113)

  4. 如果找到(3),则可以return数组索引。

第一件事: 您正在为数据库使用旧的 PHP 方法,请使用 PDO

如果不想得到最后插入的ID,可以用PDO抓取

我不明白你的SQL,因为你想得到一个ID,通过ID过滤?当您的 ID 是 INTEGER/NUMBER 时,您的陈述就毫无意义了。