【问题标题】:How do I get SQL table row number from assoc array with PHP?如何使用 PHP 从 assoc 数组中获取 SQL 表行号?
【发布时间】:2018-01-08 18:17:10
【问题描述】:
$database = new mysqli("localhost","username","password","database");

$sql = "SELECT * FROM values ORDER BY value DESC";
$values = $database->query($sql);

while($row = $values->fetch_assoc()){
    echo $row["value"];
}

$database->close();

PHP 从 SQL 表值中获取关联数组,然后循环遍历该数组并回显“值”列。我怎样才能让它也回显行号?我不能有一个单独的列,其中包含行号,因为这些行是按照存储在“值”列中的数字排序的,并且会定期更改。

谢谢。

【问题讨论】:

  • $values->num_rows 是你需要的
  • 你意识到VALUES在mysql中是保留的
  • 名称已编辑。 @FunkFortyNiner
  • 如果您的表没有primary_key,那么您的表架构中确实出现了问题。
  • 您可以在其中添加一个新变量,并在 while 的每个循环中递增。或者,您可以在查询中添加一列,例如 SELECT @row_number:=@row_number+1 AS row_number, values.* FROM values ...,然后在循环中引用新派生的 row_number 列。

标签: php mysql sql associative-array


【解决方案1】:

那么最简单的解决方案可能是:

$database = new mysqli("localhost","username","password","database");

$sql = "SELECT * FROM values ORDER BY value DESC";
$values = $database->query($sql);

$cnt = 0;
while($row = $values->fetch_assoc()){
    $cnt ++;
    echo $row["value"] . $cnt;
}

$database->close();

【讨论】:

    【解决方案2】:

    如果表中有“id”列,则可以回显 $row["id"],否则创建变量 $i=0,在循环的每次迭代中将其值加 1 并回显 $i

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-17
      • 1970-01-01
      • 2013-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-28
      相关资源
      最近更新 更多