0

我正在尝试获取我的表的行 ID 或行号。

这是我的代码。

<?php

include("config.php");

$imgtable_name = "thamana_gallery";
$image_name = "37a4d8b18493d91157b5c5e097e8bd1a6.jpg";

$sql_img = "SELECT 0 INTO @rowId";
mysql_query($sql_img);
$sql_img = "SELECT @rowId := @rowId + 1 as rowid, imgname from $imgtable_name where imgname='$image_name'";
$result_img = mysql_query($sql_img);

$imp_img = mysql_fetch_array( $result_img, MYSQL_ASSOC );

echo $image_name;
echo "<br/>";
echo $imp_img['rowid'];

echo "<br/>";
echo $imp_img['imgname'];

?>

我得到的结果如下:

++++++++++++++++++++++++++++++++++++++
37a4d8b18493d91157b5c5e097e8bd1a6.jpg
1
37a4d8b18493d91157b5c5e097e8bd1a6.jpg
++++++++++++++++++++++++++++++++++++++

图像名称位于表格的第 6 行,但结果为 1。

我错过了什么?

4

2 回答 2

0

@row 是针对从数据库中检索到的每一行计算的。如果您要检索 10 行,则将其从 1 编号到 10,如果您要检索特定行,由于您受名称限制,将只返回一行。

要将结果限制为具有特定 rowId 的行,您需要执行以下操作:

select * from 
  (
    select @rowId := @rowId + 1 as rowid, imgname from TABLE_NAME order by imgname
  ) a 
where 
  a.imgname=:IMG_NAME
于 2012-06-10T10:30:15.920 回答
0

为什么不只使用带有主索引和自动增量的 id-column?然后,您可以检索

SELECT id, imgname FROM ...
于 2012-06-10T10:17:38.757 回答